#!/usr/bin/python
# -*- coding: utf-8 -*-
#****************************************************************************
#*                                                                          *
#*  Copyright (c) 2020                                                      *
#*  Maurice easyw@katamail.com                                              *
#*                                                                          *
#*   code partially based on:                                               *
#*                                                                          *
# evolution of Macro_CenterFace                                             *
# some part of Macro WorkFeature                                            *
# and Macro Rotate To Point, Macro_Delta_xyz                                *
# and assembly2                                                             *
#                                                                           *
# Move objs along obj face Normal or edge                                   *
#                                                                           *
# HDPI improved ui thanks to Mateusz https://github.com/f3nix               *
#                                                                           *
#  (C) Maurice easyw-fc 2020                                                *
#    This program is free software; you can redistribute it and/or modify   *
#    it under the terms of the GNU Library General Public License (LGPL)    *
#    as published by the Free Software Foundation; either version 2 of      *
#    the License, or (at your option) any later version.                    *
#    for detail see the LICENCE text file.                                  *
#****************************************************************************


__title__   = "Caliper for Measuring Part, App::Part & Body objects"
__author__  = "maurice"
__url__     = "kicad stepup"
__version__ = "1.6.8" #Manipulator for Parts
__date__    = "09.2023"

testing=False #true for showing helpers
testing2=False #true for showing helpers

## todo
#  better Gui with icons
#  fix dist snap point in asm3 branch
##  ##App::Part hierarchical objects & Bodys on FC 0.17
##
global clp_dock_mode
clp_dock_mode = ''

global APName
APName = ''
## import statements
# oDraft -> Draft from FreeCAD_0.17.13488

import FreeCAD, FreeCADGui
import threading

def getFCversion():

    FC_majorV=int(float(FreeCAD.Version()[0]))
    FC_minorV=int(float(FreeCAD.Version()[1]))
    try:
        FC_git_Nbr=int(float(FreeCAD.Version()[2].strip(" (Git)")))
    except:
        FC_git_Nbr=0
    return FC_majorV,FC_minorV,FC_git_Nbr

# if getFCversion()[0]==0 and getFCversion()[1]>17:
#     import oDraft
#     mDraft = oDraft
# else:
#     import Draft
#     mDraft = Draft

import Draft
mDraft = Draft

##    
def getQtversion():
    qtv = str(QtCore.qVersion())
    qtMv = qtv.split('.')[0]
    qtmv = qtv.split('.')[1]
    #print (qtMv,qtmv)
    
    return qtMv,qtmv
##

##    
def mkDim(p1,p2,p3,fs,ts):
    
    import Draft
    mDraft = Draft
    doc=FreeCAD.ActiveDocument
    dim=mDraft_makeDimension(p1,p2,p3)
    doc.getObject(dim.Name).recompute(True)
    clr=(1.000,0.667,0.000) #= (0.333,1.000,0.498)
    try:
        mDraft.autogroup(dim)
        doc.getObject(dim.Name).ViewObject.ArrowType = u"Tick"
        doc.getObject(dim.Name).ViewObject.DisplayMode = u"3D"
    except:
        try: 
            doc.getObject(dim.Name).ViewObject.ArrowType = "Tick"
            doc.getObject(dim.Name).ViewObject.DisplayMode = "3D"
            pass
        except:
            doc.getObject(dim.Name).ViewObject.ArrowType = u"Tick"
            doc.getObject(dim.Name).ViewObject.DisplayMode = "Screen"
    dst=doc.getObject(dim.Name).Distance
    if getFCversion()[0]==0 and getFCversion()[1]<21:
        doc.getObject(dim.Name).ViewObject.FontSize = fs
    doc.getObject(dim.Name).ViewObject.ArrowSize = ts
    if hasattr(dim.ViewObject, 'TextColor'):
        doc.getObject(dim.Name).ViewObject.TextColor = clr
    doc.getObject(dim.Name).ViewObject.LineColor = clr
    doc.getObject(dim.Name).Label = "Distance"
    #doc.getObject(dim.Name).ViewObject.ExtLines = '0 mm'
    return dim
##
def mkAnno (nm,bp,txt,afs):
    
    doc=FreeCAD.ActiveDocument
    anno = doc.addObject("App::AnnotationLabel",nm)
    anno.BasePosition = mid
    anno.LabelText = txt
    anno.ViewObject.FontSize=afs
    return anno
    
##
def mv2Meas(adim):

    doc=FreeCAD.ActiveDocument
    for ad in adim:
        if doc.getObject('Measurements') is None:
            doc.addObject('App::DocumentObjectGroup','Measurements')
            doc.ActiveObject.Label = 'Measurements'
        try:
            doc.getObject('Measurements').addObject(doc.getObject(ad.Name))
        except:
            pass

#


import Part, PartGui, DraftTools, DraftVecUtils, DraftGeomUtils
from FreeCAD import Base
import sys, math
from PySide import QtCore, QtGui
from pivy import coin

import numpy as np

angle_tolerance = 1e-5 #
ninst = 0
global tobiarc_tol
tobiarc_tol = 0.001 #0.0001

def set_CPposition():
    global clp_dock_mode
    
    pg = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Manipulator")
    clp_dock_mode = pg.GetString("CP_dock")
    if len (clp_dock_mode) == 0:
        clp_dock_mode = 'float/350/300/302/240'
    if 'float' in clp_dock_mode:
        CPDockWidget.setFloating(True)  #undock
        CPDockWidget.resize(sizeX,sizeY)
        c_geo = clp_dock_mode.split('/')
        # print(a_geo)
        CPDockWidget.activateWindow()
        CPDockWidget.raise_()
        if len (c_geo) > 1:
            CPDockWidget.setGeometry(int(c_geo[1]), int(c_geo[2]),int(c_geo[3]), int(c_geo[4]))
            # print('setting position to: ', a_geo)
    if clp_dock_mode == 'left':
        dock_left_CP()
        CPDockWidget.activateWindow()
        CPDockWidget.raise_()
    elif clp_dock_mode == 'right':
        dock_right_CP()
        CPDockWidget.activateWindow()
        CPDockWidget.raise_()
    say("position set "+clp_dock_mode)
##
def get_CPposition():
    global clp_dock_mode
    t=FreeCADGui.getMainWindow()
    if CPDockWidget.isFloating():
        cg = CPDockWidget.geometry()
        # print(ag)
        clp_dock_mode = 'float/'+str(cg.x())+'/'+str(cg.y())+'/'+str(cg.width())+'/'+str(cg.height())
    elif t.dockWidgetArea(CPDockWidget) == QtCore.Qt.RightDockWidgetArea:
        clp_dock_mode = 'right'
    else:
        clp_dock_mode = 'left'
    pg = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Manipulator")
    pg.SetString("CP_dock",clp_dock_mode)
    say("position written "+clp_dock_mode)
##


def closestDistanceBetweenLines(a0,a1,b0,b1,clampAll=False,clampA0=False,clampA1=False,clampB0=False,clampB1=False):
    ## https://stackoverflow.com/questions/2824478/shortest-distance-between-two-line-segments
    ''' Given two lines defined by numpy.array pairs (a0,a1,b0,b1)
        Return the closest points on each segment and their distance
    '''

    # If clampAll=True, set all clamps to True
    if clampAll:
        clampA0=True
        clampA1=True
        clampB0=True
        clampB1=True


    # Calculate denomitator
    A = a1 - a0
    B = b1 - b0
    magA = np.linalg.norm(A)
    magB = np.linalg.norm(B)

    _A = A / magA
    _B = B / magB

    cross = np.cross(_A, _B);
    denom = np.linalg.norm(cross)**2


    # If lines are parallel (denom=0) test if lines overlap.
    # If they don't overlap then there is a closest point solution.
    # If they do overlap, there are infinite closest positions, but there is a closest distance
    if not denom:
        d0 = np.dot(_A,(b0-a0))

        # Overlap only possible with clamping
        if clampA0 or clampA1 or clampB0 or clampB1:
            d1 = np.dot(_A,(b1-a0))

            # Is segment B before A?
            if d0 <= 0 >= d1:
                if clampA0 and clampB1:
                    if np.absolute(d0) < np.absolute(d1):
                        return a0,b0,np.linalg.norm(a0-b0)
                    return a0,b1,np.linalg.norm(a0-b1)


            # Is segment B after A?
            elif d0 >= magA <= d1:
                if clampA1 and clampB0:
                    if np.absolute(d0) < np.absolute(d1):
                        return a1,b0,np.linalg.norm(a1-b0)
                    return a1,b1,np.linalg.norm(a1-b1)


        # Segments overlap, return distance between parallel segments
        return None,None,np.linalg.norm(((d0*_A)+a0)-b0)



    # Lines criss-cross: Calculate the projected closest points
    t = (b0 - a0);
    detA = np.linalg.det([t, _B, cross])
    detB = np.linalg.det([t, _A, cross])

    t0 = detA/denom;
    t1 = detB/denom;

    pA = a0 + (_A * t0) # Projected closest point on segment A
    pB = b0 + (_B * t1) # Projected closest point on segment B


    # Clamp projections
    if clampA0 or clampA1 or clampB0 or clampB1:
        if clampA0 and t0 < 0:
            pA = a0
        elif clampA1 and t0 > magA:
            pA = a1

        if clampB0 and t1 < 0:
            pB = b0
        elif clampB1 and t1 > magB:
            pB = b1

        # Clamp projection A
        if (clampA0 and t0 < 0) or (clampA1 and t0 > magA):
            dot = np.dot(_B,(pA-b0))
            if clampB0 and dot < 0:
                dot = 0
            elif clampB1 and dot > magB:
                dot = magB
            pB = b0 + (_B * dot)

        # Clamp projection B
        if (clampB0 and t1 < 0) or (clampB1 and t1 > magB):
            dot = np.dot(_A,(pB-a0))
            if clampA0 and dot < 0:
                dot = 0
            elif clampA1 and dot > magA:
                dot = magA
            pA = a0 + (_A * dot)


    return pA,pB,np.linalg.norm(pA-pB)


def normalized(first):
    "normalized(Vector) - returns a unit vector"
    if isinstance(first,FreeCAD.Vector):
        l=length(first)
        return FreeCAD.Vector(first.x/l, first.y/l, first.z/l)

def dotproduct(first, other):
    "dotproduct(Vector,Vector) - returns the dot product of both vectors"
    if isinstance(first,FreeCAD.Vector) and isinstance(other,FreeCAD.Vector):
        return (first.x*other.x + first.y*other.y + first.z*other.z)
###
def colinearVectors(A, B, C, info=0, tolerance=1e-12):
    """ Return true if the 3 points are aligned.
    """
    Vector_1 = B - A
    Vector_2 = C - B
    #if info != 0:
    #    print_point(Vector_1, msg="Vector_1 : ")
    #    print_point(Vector_2, msg="Vector_2 : ")
    Vector_3 = Vector_1.cross(Vector_2)
    #if info != 0:
    #    print_point(Vector_3, msg="Vector_1.cross(Vector_2) : ")

    if abs(Vector_3.x) <= tolerance and abs(Vector_3.y) <= tolerance and abs(Vector_3.z) <= tolerance:
        if info != 0:
            sayw("Colinear Vectors !")
        return True
    else:
        if info != 0:
            sayw("NOT Colinear Vectors !")
        return False
    return
###
def point_plane_distance(point, plane_normal, plane_point):
    """signed distance between plane and point"""
    dist = float (dotproduct(plane_normal, (point.sub(plane_point))))

    return dist
##

def reset_prop_shapes(obj):

    s=obj.Shape
    #say('resetting props #2')
    r=[]
    t=s.copy()
    for i in t.childShapes():
        c=i.copy()
        c.Placement=t.Placement.multiply(c.Placement)
        r.append((i,c))

    w=t.replaceShape(r)
    w.Placement=FreeCAD.Placement()
    Part.show(w)
    FreeCADGui.ActiveDocument.ActiveObject.ShapeColor=FreeCADGui.ActiveDocument.getObject(obj.Name).ShapeColor
    FreeCADGui.ActiveDocument.ActiveObject.LineColor=FreeCADGui.ActiveDocument.getObject(obj.Name).LineColor
    FreeCADGui.ActiveDocument.ActiveObject.PointColor=FreeCADGui.ActiveDocument.getObject(obj.Name).PointColor
    FreeCADGui.ActiveDocument.ActiveObject.DiffuseColor=FreeCADGui.ActiveDocument.getObject(obj.Name).DiffuseColor
    FreeCADGui.ActiveDocument.ActiveObject.Transparency=FreeCADGui.ActiveDocument.getObject(obj.Name).Transparency
    new_label=obj.Label
    FreeCAD.ActiveDocument.removeObject(obj.Name)
    FreeCAD.ActiveDocument.recompute()
    FreeCAD.ActiveDocument.ActiveObject.Label=new_label
    rstObj=FreeCAD.ActiveDocument.ActiveObject
    #say(rstObj)
    #
    return rstObj
###

def makeAPlane(w, w_multipl,norm,plcm,PC):
    """ creating an Annotation Plane and reference for Dimension
        aligned to the selected Face and centered on its center"""

    #FreeCAD.ActiveDocument.addObject("Part::Plane","AnnotationPlane")
    #APT=FreeCAD.ActiveDocument.ActiveObject
    #APTName=APT.Name
    #lng=w*w_multipl
    #FreeCAD.ActiveDocument.getObject(APTName).Length=lng
    #FreeCAD.ActiveDocument.getObject(APTName).Width=lng
    #FreeCAD.ActiveDocument.getObject(APTName).Placement=Base.Placement(Base.Vector(0.0,0.0,0.0),Base.Rotation(0.000,0.000,0.000,1.000))
    #FreeCAD.ActiveDocument.getObject(APTName).Label='APlane'
    #FreeCADGui.ActiveDocument.getObject(APTName).ShapeColor = (0.667,0.667,0.498)
    #FreeCADGui.ActiveDocument.getObject(APTName).Transparency = 50 #99
    #
    #FreeCAD.ActiveDocument.recompute()
    #
    ##Draft.rotate(FreeCAD.ActiveDocument.getObject(APEdgeName),45,FreeCAD.Vector(0,0,0),FreeCAD.Vector(0,0,1))
    #
    #sh1=FreeCAD.ActiveDocument.getObject(APTName).Shape.copy()
    ##print sh1.normalAt(0,0)
    #sh1.Placement=plcm
    ##print PC
    #sh1.translate(FreeCAD.Vector(PC[0]-lng/2,PC[1]-lng/2,PC[2]))
    #rot_angle = math.degrees(FreeCAD.Vector(0.0,0.0,1.0).getAngle(norm))
    #rot_axis = FreeCAD.Vector(0.0,0.0,1.0).cross(norm)
    #Origin = Base.Vector(0, 0, 0)
    #if colinearVectors(norm, Origin, FreeCAD.Vector(0.0,0.0,1.0), info=0, tolerance=1e-12):
    #    rot_axis = Base.Vector(0, 0, 1).cross(norm)
    #    if rot_axis==FreeCAD.Vector (0.0, 0.0, 0.0):
    #        rot_axis=Base.Vector(0, 1, 0).cross(norm)
    #    #rot_angle = 180. # + m_angleAlignFaces
    #    rot_angle=0.
    ##print rot_axis
    #sh1.rotate(DraftVecUtils.tup(PC), DraftVecUtils.tup(rot_axis), rot_angle)
    #FreeCAD.ActiveDocument.getObject(APTName).Placement=sh1.Placement
    #
    #FreeCAD.ActiveDocument.recompute()

    lng=w*w_multipl
    FreeCAD.ActiveDocument.addObject("Part::RegularPolygon","AnnotationPlane")
    APE=FreeCAD.ActiveDocument.ActiveObject
    APEName=APE.Name
    FreeCAD.ActiveDocument.getObject(APEName).Polygon=8
    FreeCAD.ActiveDocument.getObject(APEName).Circumradius=lng*1.41421
    FreeCAD.ActiveDocument.getObject(APEName).Placement=Base.Placement(Base.Vector(0.000,0.000,0.000),Base.Rotation(0.000,0.000,0.000,1.000))
    FreeCAD.ActiveDocument.getObject(APEName).Label='APEdge'
    FreeCAD.ActiveDocument.recompute()
    mDraft.upgrade(FreeCAD.ActiveDocument.getObject(APEName),delete=True)
    APT=FreeCAD.ActiveDocument.ActiveObject
    APTName=APT.Name

    FreeCAD.ActiveDocument.getObject(APTName).Label='APLane'
    FreeCADGui.ActiveDocument.getObject(APTName).ShapeColor = (0.667,0.667,0.498)
    FreeCADGui.ActiveDocument.getObject(APTName).Transparency = 50 #99

    sh1=FreeCAD.ActiveDocument.getObject(APTName).Shape.copy()
    #print sh1.normalAt(0,0)
    sh1.Placement=plcm
    #print PC
    sh1.translate(FreeCAD.Vector(PC[0],PC[1],PC[2]))
    rot_angle = math.degrees(FreeCAD.Vector(0.0,0.0,1.0).getAngle(norm))
    rot_axis = FreeCAD.Vector(0.0,0.0,1.0).cross(norm)
    Origin = Base.Vector(0, 0, 0)
    if colinearVectors(norm, Origin, FreeCAD.Vector(0.0,0.0,1.0), info=0, tolerance=1e-12):
        rot_axis = Base.Vector(0, 0, 1).cross(norm)
        if rot_axis==FreeCAD.Vector (0.0, 0.0, 0.0):
            rot_axis=Base.Vector(0, 1, 0).cross(norm)
        #rot_angle = 180. # + m_angleAlignFaces
        rot_angle=0.
    #print rot_axis
    sh1.rotate(DraftVecUtils.tup(PC), DraftVecUtils.tup(rot_axis), rot_angle)
    sh1.rotate(DraftVecUtils.tup(PC), DraftVecUtils.tup(norm), 45)

    FreeCAD.ActiveDocument.getObject(APTName).Placement=sh1.Placement
    FreeCAD.ActiveDocument.recompute()

    # PLN=FreeCAD.ActiveDocument.getObject(APT.Name)
    # AP=reset_prop_shapes(PLN)

    #sh1=FreeCAD.ActiveDocument.getObject(AP.Name).Shape.copy()
    #sh1.translate(FreeCAD.Vector(-w/2,-w/2,0))
    #FreeCAD.ActiveDocument.getObject(AP.Name).Placement=sh1.Placement

    return APTName
##
def remove_all_selection():
    if FreeCAD.ActiveDocument is not None:
        FreeCAD.ActiveDocument.recompute()
        for ob in FreeCAD.ActiveDocument.Objects:
            FreeCADGui.Selection.removeSelection(ob)

##
def mDraft_makeDimension(p1,p2,p3):
    import Draft
    if hasattr(Draft, "make_linear_dimension"):
        return Draft.make_linear_dimension(p1,p2,p3)
    else:
        return Draft.makeDimension(p1,p2,p3)

##--------------------------------------------------------------------------------------
class SelObserverCaliper:
    def addSelection(self, document, object, element, position):  # Selection
        global ui
        global selobject, sel, posz, P,P1,P2,PE,PC,APName
        global initial_placement, last_selection, objs
        global added_dim, in_hierarchy, vec1, mid, midP, va, vb, P_T
        global ornt_1, sel1, has_radius, w, angle, dstP

        fntsize='2mm'
        ticksize='0.1mm'
        anno_fntsize = 12.0
        Vtx_sel=False
        dx=0;dy=0;dz=0
        #dstP=-1
        #use_hierarchy=CPDockWidget.ui.cbHierarchy.isChecked()

        if 1:#try:
            if 'LinkView' in dir(FreeCADGui): #getting the full hierarchy information
                sel       = FreeCADGui.Selection.getSelectionEx('', 0) # Select a subObject w/ the full hierarchy information
                ## empty string means current document, '*' means all document. 
                ## The second argument 1 means resolve sub-object, which is the default value. 0 means full hierarchy.
            else:
                sel       = FreeCADGui.Selection.getSelectionEx()         # Select a subObject
            selobject = FreeCADGui.Selection.getSelection()           # Select an object
            
            #ui.label_1.setText("Length axis (first object) : " + str(sel[0].SubObjects[0].Length) + " mm")
            if len(selobject) == 1 or len(sel) == 1:# or (len(selobject) == 1 and len(sel) == 1):
                if len(sel[0].SubObjects)>0: #Faces or Edges
                    if 'Face' in str(sel[0].SubObjects[0]) or 'Edge' in str(sel[0].SubObjects[0])\
                                                           or 'Vertex' in str(sel[0].SubObjects[0]):
                        #sayw('starting')
                        if 'Vertex' in str(sel[0].SubObjects[0]):
                            Vtx_sel=True
                        objs = []
                        #if len (last_selection)>0:
                        #    say ('last selection: ' + last_selection[0].Name)
                        #    for o in last_selection:
                        #        say('sel list ' + o.Name) #o.Object.Name)
                        #sayw('selecting')
                        o = sel[0].Object
                        #top_lvl=None
                        #if in_hierarchy:
                        posz=position
                        #sayw('posz '+str(posz))
                        plcm, top_level_obj, bbC, pnt, orient, norm = get_placement_hierarchy (sel[0])
                        #print(top_level_obj);stop
                        if top_level_obj is not None:
                            #say('object in App::Part hierarchy or Body')
                            top_level_obj_Name=top_level_obj.Name
                            in_hierarchy=True
                        else:
                            #say('object Part')
                            top_level_obj_Name=sel[0].Object.Name
                            in_hierarchy=False
                        rot_center=bbC
                        has_Placement=False
                        if hasattr(top_level_obj,'Placement'):
                            has_Placement=True
                        if in_hierarchy and has_Placement:
                            #say('in hierarchy and use hierarchy')
                            last_selection.append(top_level_obj) #(sel[0])
                            obj = top_level_obj #sel[0].Object
                            initial_placement.append(obj.Placement)
                            objs.append(obj)
                            #say ('initial Plcm '+str(obj.Placement))
                        else:
                            last_selection.append(sel[0].Object)
                            obj = sel[0].Object
                            initial_placement.append(obj.Placement)
                            objs.append(obj)
                            #say ('initial Plcm '+str(obj.Placement))
                        #say ('last selection: ' + obj.Name)
                        #for o in last_selection:
                        #    say('sel list ' + o.Name) #o.Object.Name)

                        if CPDockWidget.ui.rbSnap.isChecked()\
                              or CPDockWidget.ui.rbBbox.isChecked() or CPDockWidget.ui.rbMass.isChecked():    ### Snap
                            #print (sel[0].SubObjects[0].Vertexes[0].Point,sel[0].SubObjects[0].Vertexes[1].Point)
                            #print 'pnt=',pnt[0]
                            if CPDockWidget.ui.DimensionP1.isEnabled(): #step #1
                                P1=pnt
                                PC=mDraft.makePoint(pnt[0],pnt[1],pnt[2])
                                added_dim.append(FreeCAD.ActiveDocument.getObject(PC.Name))
                                mv2Meas(added_dim)
                                FreeCADGui.ActiveDocument.getObject(PC.Name).PointSize = 10.000
                                FreeCADGui.ActiveDocument.getObject(PC.Name).PointColor = (1.000,0.667,0.000)
                                CPDockWidget.ui.DimensionP1.setEnabled(False)
                                CPDockWidget.ui.DimensionP2.setEnabled(True)
                            elif CPDockWidget.ui.DimensionP2.isEnabled(): #step #2
                                CPDockWidget.ui.DimensionP2.setEnabled(False)
                                w=dist(P1, pnt)*5
                                P2=pnt
                                dx=abs(pnt[0]-P1[0]);dy=abs(pnt[1]-P1[1]);dz=abs(pnt[2]-P1[2])
                                if CPDockWidget.ui.cbAPlane.isChecked():
                                    PE=mDraft.makePoint(pnt[0],pnt[1],pnt[2])
                                    added_dim.append(FreeCAD.ActiveDocument.getObject(PE.Name))
                                    FreeCADGui.ActiveDocument.getObject(PE.Name).PointSize = 10.000
                                    FreeCADGui.ActiveDocument.getObject(PE.Name).PointColor = (1.000,0.667,0.000)
                                    CPDockWidget.ui.APlane.setEnabled(True)
                                    CPDockWidget.ui.DimensionP1.setEnabled(False)
                                    mv2Meas(added_dim)
                                else:
                                    CPDockWidget.ui.DimensionP1.setEnabled(True)
                                    FreeCAD.ActiveDocument.removeObject(PC.Name)
                                    halfedge = (pnt.sub(P1)).multiply(.5)
                                    mid=FreeCAD.Vector.add(P1,halfedge)
                                    if mid!=P1: #non coincident points
                                        dim=mkDim(pnt,P1,mid,fntsize,ticksize)
                                        say("Distance : "+str(dim.Distance))
                                        added_dim.append(FreeCAD.ActiveDocument.getObject(dim.Name))
                                        if CPDockWidget.ui.bLabel.isChecked():
                                            txt=['ds: '+str(dim.Distance),'dx: '+str(abs(pnt[0]-P1[0])),'dy: '+str(abs(pnt[1]-P1[1])),'dz: '+str(abs(pnt[2]-P1[2]))]
                                            anno=mkAnno("DistanceLbl",mid,txt,anno_fntsize)
                                            added_dim.append(FreeCAD.ActiveDocument.getObject(anno.Name))
                                            # annoG = FreeCADGui.ActiveDocument.getObject(anno.Name)
                                        mv2Meas(added_dim)
                                    else:
                                        say("Distance : 0.0")
                                mv2Meas(added_dim)
                                sayw("Delta X  : "+str(abs(pnt[0]-P1[0])))
                                sayw("Delta Y  : "+str(abs(pnt[1]-P1[1])))
                                sayw("Delta Z  : "+str(abs(pnt[2]-P1[2])))
                            elif CPDockWidget.ui.APlane.isEnabled(): ## step #2
                                CPDockWidget.ui.APlane.setEnabled(False)
                                CPDockWidget.ui.DimensionP3.setEnabled(True)
                                #print 'step#2 norm ', norm, ' plcm ',plcm, ' P1 ',P1
                                plcmT=FreeCAD.Placement(FreeCAD.Vector(0,0,0), FreeCAD.Rotation(0,0,0), FreeCAD.Vector(0,0,0))
                                APName=makeAPlane(w,0.7,norm,plcmT,P1)
                                added_dim.append(FreeCAD.ActiveDocument.getObject(APName))
                                mv2Meas(added_dim)
                            elif CPDockWidget.ui.DimensionP3.isEnabled(): ## step #3
                                CPDockWidget.ui.DimensionP3.setEnabled(False)
                                CPDockWidget.ui.DimensionP1.setEnabled(True)

                                vect_posz=FreeCAD.Vector(posz)
                                #print(P2,P1,vect_posz)
                                dim=mkDim(P2,P1,vect_posz,fntsize,ticksize)
                                FreeCAD.ActiveDocument.getObject(dim.Name).recompute(True)
                                #FreeCADGui.ActiveDocument.getObject(dim.Name).FlipArrows = True
                                dst=FreeCAD.ActiveDocument.getObject(dim.Name).Distance
                                FreeCADGui.ActiveDocument.getObject(dim.Name).ExtLines = '0 mm'
                                FreeCAD.ActiveDocument.getObject(dim.Name).Label = "Distance"
                                say("Distance : "+str(dim.Distance))
                                sayw("Delta X  : "+str(abs(P2[0]-P1[0])))
                                sayw("Delta Y  : "+str(abs(P2[1]-P1[1])))
                                sayw("Delta Z  : "+str(abs(P2[2]-P1[2])))
                                added_dim.append(FreeCAD.ActiveDocument.getObject(dim.Name))
                                mv2Meas(added_dim)
                                if CPDockWidget.ui.bLabel.isChecked():
                                    txt = ['ds: '+str(dim.Distance),'dx: '+str(abs(P2[0]-P1[0])),'dy: '+str(abs(P2[1]-P1[1])),'dz: '+str(abs(P2[2]-P1[2]))]
                                    #['ds: '+str(dim.Distance),'dx: '+str(dx),'dy: '+str(dy),'dz: '+str(dz)] # str(dim.Distance)
                                    anno=mkAnno("DistanceLbl",P1,txt,anno_fntsize)
                                    added_dim.append(FreeCAD.ActiveDocument.getObject(anno.Name))
                                    mv2Meas(added_dim)
                                FreeCAD.ActiveDocument.removeObject(PC.Name)
                                FreeCAD.ActiveDocument.removeObject(PE.Name)
                                FreeCADGui.ActiveDocument.getObject(APName).Visibility = False
                                #FreeCAD.ActiveDocument.removeObject(APName)
                                FreeCAD.ActiveDocument.recompute()
                                # FreeCAD.ActiveDocument.removeObject(APName)

                            FreeCAD.ActiveDocument.recompute()
                            
### -------------------------------------------------- end Snap ------------------------------------------------------------- ###

                        elif (CPDockWidget.ui.rbRadius.isChecked() and not Vtx_sel): ### Radius
                            if CPDockWidget.ui.DimensionP1.isEnabled():# and not CPDockWidget.ui.APlane.isEnabled(): #step #1
                                if 'Edge' in str(sel[0].SubObjects[0]):
                                    CPDockWidget.ui.DimensionP1.setEnabled(False)
                                    CPDockWidget.ui.DimensionP2.setEnabled(False)
                                    #print 'bbC',bbC
                                    has_radius=0
                                    curve_type = type(sel[0].SubObjects[0].Curve)
                                    if curve_type == Part.Circle or curve_type == Part.ArcOfCircle:
                                        has_radius=1
                                    elif curve_type == Part.BSplineCurve: #approx to radius
                                        has_radius=2
                                    P1=FreeCAD.Vector(bbC)
                                    P2=pnt
                                    halfedge = (pnt.sub(P1)).multiply(.5)
                                    mid=FreeCAD.Vector.add(P1,halfedge)
                                    PC=mDraft.makePoint(P1[0],P1[1],P1[2])
                                    PE=mDraft.makePoint(pnt[0],pnt[1],pnt[2])
                                    w=dist(P1, pnt)*5
                                    if CPDockWidget.ui.cbAPlane.isChecked():
                                        CPDockWidget.ui.APlane.setEnabled(True)
                                    else:
                                        CPDockWidget.ui.DimensionP1.setEnabled(True)
                                        #APName,APEdgeName=makeAPlane(w,norm,plcm,P1)
                                        #added_dim.append(FreeCAD.ActiveDocument.getObject(APEdgeName))
                                        #added_dim.append(FreeCAD.ActiveDocument.getObject(APName))
                                    #print norm
                                    #P=Draft.makePoint(pnt[0],pnt[1],pnt[2])
                                    if has_radius != 0:
                                        PC.Label='Center'
                                    else:
                                        PC.Label='Mid'
                                    FreeCADGui.ActiveDocument.getObject(PC.Name).PointColor = (1.000,0.667,0.000)
                                    FreeCADGui.ActiveDocument.getObject(PE.Name).PointColor = (1.000,0.667,0.000)
                                    FreeCADGui.ActiveDocument.getObject(PC.Name).PointSize = 10.000
                                    FreeCADGui.ActiveDocument.getObject(PE.Name).PointSize = 10.000
                                    added_dim.append(FreeCAD.ActiveDocument.getObject(PC.Name))
                                    added_dim.append(FreeCAD.ActiveDocument.getObject(PE.Name))
                                    mv2Meas(added_dim)
                                    if not CPDockWidget.ui.cbAPlane.isChecked():
                                        dim=mkDim(pnt,P1,mid,fntsize,ticksize)
                                        FreeCAD.ActiveDocument.getObject(dim.Name).recompute(True)
                                        #FreeCADGui.ActiveDocument.getObject(dim.Name).FlipArrows = True
                                        # recomputing dimension before assigning value
                                        FreeCAD.ActiveDocument.getObject(dim.Name).touch()
                                        FreeCAD.ActiveDocument.getObject(dim.Name).recompute()
                                        dst=FreeCAD.ActiveDocument.getObject(dim.Name).Distance
                                        if has_radius == 2:
                                            say("Radius approx: "+str(dim.Distance))
                                            FreeCAD.ActiveDocument.getObject(dim.Name).Label = "Radius approx"
                                            sayw("Center Coordinates  : "+'{0:.3f}'.format(P1[0])+'; {0:.3f}'.format(P1[1])+'; {0:.3f}'.format(P1[2]))
                                            FreeCAD.ActiveDocument.removeObject(PE.Name)
                                        elif has_radius == 1:
                                            say("Radius   : "+str(dim.Distance))
                                            FreeCAD.ActiveDocument.getObject(dim.Name).Label = "Radius"
                                            sayw("Center Coordinates  : "+'{0:.3f}'.format(P1[0])+'; {0:.3f}'.format(P1[1])+'; {0:.3f}'.format(P1[2]))
                                            FreeCAD.ActiveDocument.removeObject(PE.Name)
                                        else:
                                            say("Distance : "+str(dim.Distance))
                                            FreeCAD.ActiveDocument.getObject(dim.Name).Label = "Distance"
                                            sayw("Delta X  : "+str(abs(pnt[0]-P1[0])))
                                            sayw("Delta Y  : "+str(abs(pnt[1]-P1[1])))
                                            sayw("Delta Z  : "+str(abs(pnt[2]-P1[2])))
                                            FreeCAD.ActiveDocument.removeObject(PE.Name)
                                            FreeCAD.ActiveDocument.removeObject(PC.Name)
                                        added_dim.append(FreeCAD.ActiveDocument.getObject(dim.Name))
                                        if CPDockWidget.ui.bLabel.isChecked():
                                            txt = ['radi: '+str(dim.Distance)]
                                            anno=mkAnno("RadiusLbl",mid,txt,anno_fntsize)
                                            # anno = FreeCAD.ActiveDocument.addObject("App::AnnotationLabel","RadiusLbl")
                                            added_dim.append(FreeCAD.ActiveDocument.getObject(anno.Name))
                                        mv2Meas(added_dim)    
                                    FreeCAD.ActiveDocument.recompute()
                                    #print 'step#1 norm ', norm, ' plcm ',plcm, ' P1 ',P1
                            elif CPDockWidget.ui.APlane.isEnabled(): ## step #2
                                CPDockWidget.ui.APlane.setEnabled(False)
                                CPDockWidget.ui.DimensionP3.setEnabled(True)
                                #print 'step#2 norm ', norm, ' plcm ',plcm, ' P1 ',P1
                                plcmT=FreeCAD.Placement(FreeCAD.Vector(0,0,0), FreeCAD.Rotation(0,0,0), FreeCAD.Vector(0,0,0))
                                APName=makeAPlane(w,2.,norm,plcmT,P1)
                                added_dim.append(FreeCAD.ActiveDocument.getObject(APName))
                                mv2Meas(added_dim)
                            elif CPDockWidget.ui.DimensionP3.isEnabled(): ## step #3
                                CPDockWidget.ui.DimensionP3.setEnabled(False)
                                CPDockWidget.ui.DimensionP1.setEnabled(True)

                                vect_posz=FreeCAD.Vector(posz)
                                dim=mkDim(P2,P1,vect_posz,fntsize,ticksize)
                                FreeCAD.ActiveDocument.getObject(dim.Name).recompute(True)
                                #FreeCADGui.ActiveDocument.getObject(dim.Name).FlipArrows = True
                                dst=FreeCAD.ActiveDocument.getObject(dim.Name).Distance
                                FreeCADGui.ActiveDocument.getObject(dim.Name).ExtLines = '0 mm'
                                if has_radius == 2:
                                    say("Radius approx: "+str(dim.Distance))
                                    FreeCAD.ActiveDocument.getObject(dim.Name).Label = "Radius approx"
                                    sayw("Center Coordinates  : "+'{0:.3f}'.format(P1[0])+'; {0:.3f}'.format(P1[1])+'; {0:.3f}'.format(P1[2]))
                                elif has_radius == 1:
                                    say("Radius   : "+str(dim.Distance))
                                    FreeCAD.ActiveDocument.getObject(dim.Name).Label = "Radius"
                                    sayw("Center Coordinates  : "+'{0:.3f}'.format(P1[0])+'; {0:.3f}'.format(P1[1])+'; {0:.3f}'.format(P1[2]))
                                else:
                                    say("Distance : "+str(dim.Distance))
                                    FreeCAD.ActiveDocument.getObject(dim.Name).Label = "Distance"
                                    sayw("Delta X  : "+str(abs(pnt[0]-P1[0])))
                                    sayw("Delta Y  : "+str(abs(pnt[1]-P1[1])))
                                    sayw("Delta Z  : "+str(abs(pnt[2]-P1[2])))
                                    FreeCAD.ActiveDocument.removeObject(PC.Name)
                                added_dim.append(FreeCAD.ActiveDocument.getObject(dim.Name))
                                mv2Meas(added_dim)
                                FreeCAD.ActiveDocument.removeObject(PE.Name)
                                FreeCADGui.ActiveDocument.getObject(APName).Visibility = False
                                #FreeCAD.ActiveDocument.removeObject(APName)

                                FreeCAD.ActiveDocument.recompute()
### ---------------------------- end radius ------------------------------------------ ###

                        elif (CPDockWidget.ui.rbLength.isChecked() and not Vtx_sel):  ### Length
                            if CPDockWidget.ui.DimensionP1.isEnabled():# and not CPDockWidget.ui.APlane.isEnabled(): #step #1
                                if 'Edge' in str(sel[0].SubObjects[0]):
                                    CPDockWidget.ui.DimensionP1.setEnabled(False)
                                    CPDockWidget.ui.DimensionP2.setEnabled(False)
                                    P1=FreeCAD.Vector(bbC)
                                    PC=mDraft.makePoint(P1[0],P1[1],P1[2])
                                    PE=mDraft.makePoint(pnt[0],pnt[1],pnt[2])
                                    w=dist(P1, pnt)*5
                                    P2=pnt
                                    if CPDockWidget.ui.cbAPlane.isChecked():
                                        CPDockWidget.ui.APlane.setEnabled(True)
                                    else:
                                        CPDockWidget.ui.DimensionP1.setEnabled(True)
                                    FreeCADGui.ActiveDocument.getObject(PC.Name).PointColor = (1.000,0.667,0.000)
                                    FreeCADGui.ActiveDocument.getObject(PE.Name).PointColor = (1.000,0.667,0.000)
                                    FreeCADGui.ActiveDocument.getObject(PC.Name).PointSize = 10.000
                                    FreeCADGui.ActiveDocument.getObject(PE.Name).PointSize = 10.000
                                    added_dim.append(FreeCAD.ActiveDocument.getObject(PC.Name))
                                    added_dim.append(FreeCAD.ActiveDocument.getObject(PE.Name))
                                    mv2Meas(added_dim)
                                    if not CPDockWidget.ui.cbAPlane.isChecked():
                                        halfedge = (pnt.sub(P1)).multiply(.5)
                                        mid=FreeCAD.Vector.add(P1,halfedge)
                                        dim=mkDim(pnt,P1,mid,fntsize,ticksize)
                                        FreeCAD.ActiveDocument.getObject(dim.Name).recompute(True)
                                        dst=FreeCAD.ActiveDocument.getObject(dim.Name).Distance
                                        FreeCAD.ActiveDocument.getObject(dim.Name).Label = "Length"
                                        FreeCAD.ActiveDocument.removeObject(PE.Name)
                                        FreeCAD.ActiveDocument.removeObject(PC.Name)
                                        say("Distance : "+str(dim.Distance))
                                        sayw("Delta X  : "+str(abs(pnt[0]-P1[0])))
                                        sayw("Delta Y  : "+str(abs(pnt[1]-P1[1])))
                                        sayw("Delta Z  : "+str(abs(pnt[2]-P1[2])))
                                        added_dim.append(FreeCAD.ActiveDocument.getObject(dim.Name))
                                        if CPDockWidget.ui.bLabel.isChecked():
                                            txt = ['ds: '+str(dim.Distance),'dx: '+str(abs(pnt[0]-P1[0])),'dy: '+str(abs(pnt[1]-P1[1])),'dz: '+str(abs(pnt[2]-P1[2]))]
                                            anno=mkAnno("DistanceLbl",mid,txt,anno_fntsize)
                                            added_dim.append(FreeCAD.ActiveDocument.getObject(anno.Name))
                                        mv2Meas(added_dim)

                                    FreeCAD.ActiveDocument.recompute()
                            elif CPDockWidget.ui.APlane.isEnabled(): ## step #2
                                CPDockWidget.ui.APlane.setEnabled(False)
                                CPDockWidget.ui.DimensionP3.setEnabled(True)
                                #print 'step#2 norm ', norm, ' plcm ',plcm, ' P1 ',P1
                                plcmT=FreeCAD.Placement(FreeCAD.Vector(0,0,0), FreeCAD.Rotation(0,0,0), FreeCAD.Vector(0,0,0))
                                APName=makeAPlane(w,0.5,norm,plcmT,P1)
                                added_dim.append(FreeCAD.ActiveDocument.getObject(APName))
                                mv2Meas(added_dim)
                            elif CPDockWidget.ui.DimensionP3.isEnabled(): ## step #3
                                CPDockWidget.ui.DimensionP3.setEnabled(False)
                                CPDockWidget.ui.DimensionP1.setEnabled(True)

                                vect_posz=FreeCAD.Vector(posz)
                                dim=mkDim(P2,P1,vect_posz,fntsize,ticksize)
                                FreeCAD.ActiveDocument.getObject(dim.Name).recompute(True)
                                #FreeCADGui.ActiveDocument.getObject(dim.Name).FlipArrows = True
                                dst=FreeCAD.ActiveDocument.getObject(dim.Name).Distance
                                FreeCAD.ActiveDocument.getObject(dim.Name).Label = "Length"
                                FreeCADGui.ActiveDocument.getObject(dim.Name).ExtLines = '0 mm'
                                say("Distance : "+str(dim.Distance))
                                sayw("Delta X  : "+str(abs(pnt[0]-P1[0])))
                                sayw("Delta Y  : "+str(abs(pnt[1]-P1[1])))
                                sayw("Delta Z  : "+str(abs(pnt[2]-P1[2])))
                                added_dim.append(FreeCAD.ActiveDocument.getObject(dim.Name))
                                mv2Meas(added_dim)
                                FreeCAD.ActiveDocument.removeObject(PE.Name)
                                FreeCAD.ActiveDocument.removeObject(PC.Name)
                                FreeCADGui.ActiveDocument.getObject(APName).Visibility = False
                                #FreeCAD.ActiveDocument.removeObject(APName)

                                FreeCAD.ActiveDocument.recompute()
### -------------------------------------- end Length ---------------------------------------------------------- ###

                        elif (CPDockWidget.ui.rbAngle.isChecked() and not Vtx_sel):   ### Angle
                            if ('Edge' in str(sel[0].SubObjects[0]) or 'Face' in str(sel[0].SubObjects[0])):
                                if CPDockWidget.ui.DimensionP1.isEnabled(): #step #1
                                    if 'Face' in str(sel[0].SubObjects[0]):
                                        P1=FreeCAD.Vector(bbC)
                                        midP=P1
                                        PC=mDraft.makePoint(P1[0],P1[1],P1[2])
                                        vec1 = norm
                                        ornt_1 = orient
                                        sel1='face'
                                        va=P1;
                                        vb=FreeCAD.Vector(bbC[0]+norm[0],bbC[1]+norm[1],bbC[2]+norm[2])
                                    else:
                                        P1=FreeCAD.Vector(bbC)
                                        halfedge = (pnt.sub(P1)).multiply(.5)
                                        midP=FreeCAD.Vector.add(P1,halfedge)
                                        PC=mDraft.makePoint(midP[0],midP[1],midP[2])
                                        va=pnt; vb=P1
                                        vec1 = pnt - P1
                                        ornt_1 = orient
                                        sel1='edge'
                                    added_dim.append(FreeCAD.ActiveDocument.getObject(PC.Name))
                                    mv2Meas(added_dim)
                                    FreeCADGui.ActiveDocument.getObject(PC.Name).PointSize = 10.000
                                    FreeCADGui.ActiveDocument.getObject(PC.Name).PointColor = (1.000,0.333,0.498)
                                    CPDockWidget.ui.DimensionP1.setEnabled(False)
                                    CPDockWidget.ui.DimensionP2.setEnabled(True)

                                elif CPDockWidget.ui.DimensionP2.isEnabled(): #step #2
                                    CPDockWidget.ui.DimensionP2.setEnabled(False)
                                    slct=sel[0].SubObjects[0]
                                    P2=pnt
                                    P1=FreeCAD.Vector(bbC)
                                    if 'Face' in str(slct):
                                        v4=P1;
                                        v3=FreeCAD.Vector(bbC[0]+norm[0],bbC[1]+norm[1],bbC[2]+norm[2])
                                        mid=FreeCAD.Vector(bbC)
                                        sel2='face'
                                    else:
                                        v3 = P2 #e2.Vertexes[-1].Point
                                        v4 = P1 #e2.Vertexes[0].Point
                                        halfedge = (pnt.sub(P1)).multiply(.5)
                                        mid=FreeCAD.Vector.add(P1,halfedge)
                                        ##Px=Draft.makePoint(mid[0],mid[1],mid[2])
                                        sel2='edge'
                                    halfedge = (mid.sub(midP)).multiply(.5)
                                    mid2=FreeCAD.Vector.add(midP,halfedge)
                                    PE=mDraft.makePoint(mid[0],mid[1],mid[2])
                                    FreeCADGui.ActiveDocument.getObject(PE.Name).PointSize = 10.000
                                    FreeCADGui.ActiveDocument.getObject(PE.Name).PointColor = (1.000,0.333,0.498)
                                    w=dist(P1, P2)*5
                                    vec2 = P2 - P1
                                    v1 = va #e1.Vertexes[-1].Point
                                    v2 = vb #e1.Vertexes[0].Point
                                    ve1 = v1.sub(v2)
                                    # Create the Vector for second edge
                                    ve2 = v3.sub(v4)
                                    if orient==ornt_1:
                                        # print 'adjusting angle'
                                        ve2 = v4.sub(v3)
                                    angle = math.degrees(ve2.getAngle(ve1))
                                    dstP=-1
                                    #print abs(angle)

                                    if (abs(angle)<angle_tolerance or abs(angle-180)<angle_tolerance) and sel1=='face' and sel2=='face':
                                        ## distance between // planes
                                        dstP = abs(point_plane_distance(P1, norm, midP))
                                    if (abs(angle)<angle_tolerance or abs(angle-180)<angle_tolerance) and sel1!='face' and sel2!='face':
                                        ## perpendicular distance between edges
                                        #sayerr('calculating Distance between // edges')
                                        a1=np.array([v1[0],v1[1],v1[2]])
                                        a0=np.array([v2[0],v2[1],v2[2]])
                                        b0=np.array([v3[0],v3[1],v3[2]])
                                        b1=np.array([v4[0],v4[1],v4[2]])
                                        dstP=closestDistanceBetweenLines(a0,a1,b0,b1,clampAll=False)[2]

                                    if CPDockWidget.ui.cbAPlane.isChecked():
                                        CPDockWidget.ui.APlane.setEnabled(True)
                                    else:
                                        CPDockWidget.ui.DimensionP1.setEnabled(True)
                                        FreeCAD.ActiveDocument.removeObject(PC.Name)
                                        FreeCAD.ActiveDocument.removeObject(PE.Name)
                                        if mid!=midP: #non coincident points
                                            dim=mkDim(mid,midP,mid2,fntsize,ticksize)
                                            FreeCAD.ActiveDocument.getObject(dim.Name).recompute(True)
                                        else:
                                            dim=mkDim(pnt,mid,P1,fntsize,ticksize)
                                            FreeCAD.ActiveDocument.getObject(dim.Name).recompute(True)
                                        dst=FreeCAD.ActiveDocument.getObject(dim.Name).Distance
                                        FreeCADGui.ActiveDocument.getObject(dim.Name).ShowUnit = False
                                        FreeCAD.ActiveDocument.getObject(dim.Name).Label = 'Angle'
                                        added_dim.append(FreeCAD.ActiveDocument.getObject(dim.Name))
                                        mv2Meas(added_dim)
                                        #print dstP, ' ', angle
                                        if dstP != -1:
                                            say("""Distance // vectors(planes) : """+'{0:.3f}'.format(dstP))
                                            dst_str='{0:.2f}'.format(dstP)
                                            if sel1=='face':
                                                FreeCAD.ActiveDocument.getObject(dim.Name).Label = '//Planes Distance'
                                            else:
                                                FreeCAD.ActiveDocument.getObject(dim.Name).Label = '//Edge Distance'
                                            FreeCADGui.ActiveDocument.getObject(dim.Name).Override = '{0:.1f}'.format(angle).rstrip('0').rstrip('.')+'° //d '+dst_str+' mm'
                                        else:
                                            FreeCADGui.ActiveDocument.getObject(dim.Name).Override = '{0:.2f}'.format(angle)+'°'
                                        sayw("Angle : "+'{0:.2f}'.format(angle))
                                        #FreeCADGui.ActiveDocument.getObject(dim.Name).Override = '{0:.2f}'.format(angle)+'°'
                                        if CPDockWidget.ui.bLabel.isChecked():
                                            txt = ['angle: '+'{0:.2f}'.format(angle)+'°']
                                            anno=mkAnno("DistanceLbl",mid2,txt,anno_fntsize)
                                            anno = FreeCAD.ActiveDocument.addObject("App::AnnotationLabel","DistanceLbl")
                                            added_dim.append(FreeCAD.ActiveDocument.getObject(anno.Name))
                                            mv2Meas(added_dim)

                                elif CPDockWidget.ui.APlane.isEnabled(): ## step #3
                                    CPDockWidget.ui.APlane.setEnabled(False)
                                    CPDockWidget.ui.DimensionP3.setEnabled(True)
                                    #print 'step#2 norm ', norm, ' plcm ',plcm, ' P1 ',P1
                                    plcmT=FreeCAD.Placement(FreeCAD.Vector(0,0,0), FreeCAD.Rotation(0,0,0), FreeCAD.Vector(0,0,0))
                                    APName=makeAPlane(w,0.5,norm,plcmT,P1)
                                    added_dim.append(FreeCAD.ActiveDocument.getObject(APName))
                                    mv2Meas(added_dim)
                                elif CPDockWidget.ui.DimensionP3.isEnabled(): ## step #4
                                    CPDockWidget.ui.DimensionP3.setEnabled(False)
                                    CPDockWidget.ui.DimensionP1.setEnabled(True)

                                    vect_posz=FreeCAD.Vector(posz)
                                    dim=mkDim(mid,midP,vect_posz,fntsize,ticksize)
                                    FreeCAD.ActiveDocument.getObject(dim.Name).recompute(True)
                                    dst=FreeCAD.ActiveDocument.getObject(dim.Name).Distance
                                    FreeCADGui.ActiveDocument.getObject(dim.Name).ShowUnit = False
                                    FreeCAD.ActiveDocument.getObject(dim.Name).Label = 'Angle'
                                    FreeCADGui.ActiveDocument.getObject(dim.Name).ExtLines = '0 mm'
                                    added_dim.append(FreeCAD.ActiveDocument.getObject(dim.Name))
                                    mv2Meas(added_dim)
                                    sayw("Angle : "+'{0:.2f}'.format(angle))
                                    if dstP != -1:
                                        say("Distance // vectors : "+'{0:.3f}'.format(dstP))
                                        dst_str='{0:.2f}'.format(dstP)
                                        FreeCADGui.ActiveDocument.getObject(dim.Name).Override = '{0:}'.format(angle)+'° //d '+dst_str+' mm'
                                    else:
                                        FreeCADGui.ActiveDocument.getObject(dim.Name).Override = '{0:.2f}'.format(angle)+'°'
                                    sayw("Angle : "+'{0:.2f}'.format(angle))
                                    FreeCAD.ActiveDocument.removeObject(PE.Name)
                                    FreeCAD.ActiveDocument.removeObject(PC.Name)
                                    FreeCADGui.ActiveDocument.getObject(APName).Visibility = False
                                    #FreeCAD.ActiveDocument.removeObject(APName)

                                FreeCAD.ActiveDocument.recompute()



                    else: #OLD Vertex not allowed in selection
                        pass
        if 0:#except:
            sayerr('restarted')
##

def a_clear_console():
    #clearing previous messages
    mw=FreeCADGui.getMainWindow()
    c=mw.findChild(QtGui.QPlainTextEdit, "Python console")
    c.clear()
    r=mw.findChild(QtGui.QTextEdit, "Report view")
    r.clear()

#if not Mod_ENABLED:
a_clear_console()

from sys import platform as _platform

# window GUI dimensions parameters
wdszX=258 #304
wdszY=308 #228 #226
##Mover size
wdszMX=304;wdszMY=256
# window GUI dimensions parameters
##Aligner size
wdzX=342;wdzY=256
if _platform == "linux" or _platform == "linux2":
   # linux
   pt_lnx=True
   sizeXmin=110;sizeYmin=34+34
   sizeX=wdszX;sizeY=wdszY-22+34 #516 #536
   sizeXright=172;sizeYright=536 #556
else:
    sizeXmin=110;sizeYmin=34
    sizeX=wdszX;sizeY=wdszY-22 #482#502
    sizeXright=172;sizeYright=502#522
if _platform == "darwin":
    pt_osx=True
##   # MAC OS X
##elif _platform == "win32":
##   # Windows
#sizeXmin=172;sizeYmin=30+34
sizeXMax=487 #487
btn_sizeX=32;btn_sizeY=32;
chkb_sizeX=20;chkb_sizeY=20;
btn_sm_sizeX=20;btn_sm_sizeY=20;
btn_md_sizeX=26;btn_md_sizeY=26;

def close_caliper():
    global s1
    get_CPposition()
    sayerr('close called')
    #def closeEvent(self, e):
    try:
        #FreeCADGui.Selection.removeObserver(SelObserverCaliper())
        FreeCADGui.Selection.removeObserver(s1)   # desinstalle la fonction residente SelObserver
        sayerr('observer removed')
        CPDockWidget.deleteLater()
    except:
        sayerr('error on removing observer')
        CPDockWidget.deleteLater()
        pass
    #CPDockWidget.Measure.toggle()
    #if CPDockWidget.Measure.isChecked():
    #    print 'checked'

    # CPDockWidget.close()

    #self.setWindowState(QtCore.Qt.WindowActive)
    doc=FreeCAD.ActiveDocument
    if doc is not None:
        FreeCAD.setActiveDocument(doc.Name)
    #FreeCAD.ActiveDocument=FreeCAD.getDocument(doc.Label)
    #FreeCADGui.ActiveDocument=FreeCADGui.getDocument(doc.Label)

def Cp_undock():
    CPDockWidget.setFloating(True)  #undock
    Cp_internal(True)
    CPDockWidget.resize(sizeX,sizeY)
    CPDockWidget.activateWindow()
    CPDockWidget.raise_()
    cg = CPDockWidget.geometry()
    #(int(a_geo[1]), int(a_geo[2]),int(a_geo[3]), int(a_geo[4]))
    clp_dock_mode = 'float/'+str(cg.x())+'/'+str(cg.y())+'/'+str(cg.width())+'/'+str(cg.height())
    pg = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Manipulator")
    pg.SetString("CP_dock",clp_dock_mode)
    say("position written "+clp_dock_mode)
    #AlgWidget.resize(QtCore.QSize(300,100).expandedTo(AlgWidget.maximumSize())) # sets size of the widget
    #AlgWidget.setFloating(False)  #dock
    #say ("now!")

def Cp_internal(show):
    CPDockWidget.ui.Controls_Group.setVisible(show)
    CPDockWidget.ui.Label.setVisible(show)

def Cp_resize():
    CPDockWidget.resize(sizeXmin,sizeYmin)
    CPDockWidget.activateWindow()
    CPDockWidget.raise_()

def Cp_minimz():
    #clear_console()
    clp_dock_mode = 'float'
    pg = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Manipulator")
    pg.SetString("CP_dock",clp_dock_mode)
    say("position written "+clp_dock_mode)
    Cp_internal(False)
    timer = threading.Timer(.1, Cp_resize)
    timer.start()
    CPDockWidget.setFloating(True)  #undock
    # AlgWidget.hide();
    # AlgWidget.setWindowState(QtCore.Qt.WindowMinimized)
    #AlgWidget.resize(500, 500)
    CPDockWidget.resize(sizeXmin,sizeYmin)
    CPDockWidget.activateWindow()
    CPDockWidget.raise_()
##

def sub(first, second):
	"sub(Vector,Vector) - subtracts second vector from first one"
	if isinstance(first,FreeCAD.Vector) and isinstance(second,FreeCAD.Vector):
		return FreeCAD.Vector(first.x-second.x, first.y-second.y, first.z-second.z)
def length(first):
	"length(Vector) - gives vector length"
	if isinstance(first,FreeCAD.Vector):
		return math.sqrt(first.x*first.x + first.y*first.y + first.z*first.z)
def dist(first, second):
	"dist(Vector,Vector) - returns the distance between both points/vectors"
	if isinstance(first,FreeCAD.Vector) and isinstance(second,FreeCAD.Vector):
		return length(sub(first,second))
##

def recurse_node(obj,plcm,scl):
    #sayerr(obj.Name)
    if "App::Part" in obj.TypeId or "Body" in obj.TypeId or "Compound" in obj.TypeId \
        or 'App::LinkGroup' in obj.TypeId: # or 'App::Link' in obj.TypeId:
        for o in obj.OutList: #for o in obj.Group:
            #sayerr(o.Name)
            if "App::Part" in o.TypeId  or "Body" in o.TypeId or "Compound" in o.TypeId \
               or 'App::LinkGroup' in obj.TypeId: # or 'App::Link' in obj.TypeId:
                #sayerr(o.Name)#+" * "+obj.Name)
                stop
                new_plcm=get_node_plc(o,obj)
                recurse_node(o,new_plcm,scl)
            else:
                if "Sketcher" not in o.TypeId:
                    simple_cpy_plc(o,plcm)
                    scl.append(FreeCAD.ActiveDocument.ActiveObject)
##

def get_top_level (obj):
    lvl=10000
    top=None
    if hasattr(obj,'InListRecursive'):
        for ap in obj.InListRecursive:
            if hasattr(ap,'Placement'):
                if len(ap.InListRecursive) < lvl:
                    top = ap
                    lvl = len(ap.InListRecursive)
    #print (top);stop
    return top
##

def get_sorted_list (obj):
    lvl=10000
    completed=0
    listUs=obj.InListRecursive
    #sayerr('unsorted')
    #for p in listUs:
    #    print p.Label
    listUsName=[]
    for o in obj.InListRecursive:
        listUsName.append(o.Name)
    listS=[]
    i=0
    #for i, ap in enumerate(listUs):
    #    top=ap
    #    if len(ap.InListRecursive) < lvl:
    #        lvl = len(ap.InListRecursive)
    #    for ap2 in listUs[(i + 1):]:
    #        if len(ap2.InListRecursive) < lvl:
    #            top = ap2
    #            lvl = len(ap2.InListRecursive)
    #    listS.append(top)
    #sayw(listUsName)
    i=0
    while len (listUsName) > 0:
        for apName in listUsName:
            #apName=listUsName[i]
            ap=FreeCAD.ActiveDocument.getObject(apName)
            if len(ap.InListRecursive) < lvl:
                lvl = len(ap.InListRecursive)
                top = ap
                topName = ap.Name
        listS.append(top)
        #print topName
        idx=listUsName.index(topName)
        #sayw(idx)
        listUsName.pop(idx)
        lvl=10000
        #sayerr(listUsName)

    return listS
##

def get_placement_hierarchy (sel0):
    """get normal at face and placement relative to hierarchy
       of first selection object/face
       return normal, placement, topObj, bbox center, Pnt absolute"""

    global use_hierarchy, posz, tobiarc_tol

    remove_all_selection()

    Obj=sel0.Object
    subObj=sel0.SubObjects[0]
    edge_op=0
    pad=0
    pV1= FreeCAD.Vector(0.0, 0.0, 0.0)
    pV2= FreeCAD.Vector(0.0, 0.0, 0.0)
    Pnt= FreeCAD.Vector(0.0, 0.0, 0.0)
    orient = None; nwnorm = None; Vtx=False

    top_level_obj = get_top_level(Obj)
    if top_level_obj is not None: #hierarchy object
        face=subObj
        if 'Face' in str(subObj):
            #say('Hierarchy obj Face')
            face=sel0.SubObjects[0]
        #say('Hierarchy obj')
        if 'Face' in str(subObj):
            #say('Hierarchy obj Face')
            pad=0 #face
        elif 'Edge' in str(subObj):
            #pV1=subObj.Vertex1.Point
            orient=subObj.Orientation
            wire = Part.Wire(subObj)
            if subObj.isClosed():
                subObj = Part.Face(wire)
                face=subObj
                circ=subObj.copy()
            else:
                #pV2=subObj.Vertex2.Point
                subObj = wire
                face=subObj
                #print subObj.Vertex2.Point
                edge_op=1
            pad=1 #edge
        elif 'Vertex' in str(subObj):
            #sayerr('vertex')
            Vtx=True
            Pt=subObj.Point
            #point = subObj.Point
            #P=subObj.Point
            nP=mDraft.makePoint(Pt)
            #wire = Part.Wire(nP)
            subObj = nP.Shape
            FreeCAD.ActiveDocument.removeObject(nP.Name)
        if CPDockWidget.ui.rbBbox.isChecked() or CPDockWidget.ui.rbMass.isChecked():
            subObj=Obj.Shape #forcing object to evaluate center of BBox
        if 1: #use_hierarchy:
            nwshp = subObj.copy()
            pOriginal=subObj.Placement
            p0 =  FreeCAD.Placement (FreeCAD.Vector(0,0,0), FreeCAD.Rotation(0,0,0), FreeCAD.Vector(0,0,0))
            nwshp.Placement=p0
            r=[]
            t=nwshp.copy()
            #resetting Placement
            for i in t.childShapes():
                c=i.copy()
                c.Placement=t.Placement.multiply(c.Placement)
                r.append((i,c))
            acpy=t.replaceShape(r)
            acpy.Placement=FreeCAD.Placement()
            if hasattr(Obj,'InListRecursive'):
                lrl=len(Obj.InListRecursive)
                #for o_ in Obj.InListRecursive:
                #    say(o_.Name)
                if len(Obj.InList):
                    top_level_obj = get_top_level(Obj)
                    #sayerr(top_level_obj.Label)
                    listSorted=get_sorted_list (Obj)
                    #for p in listSorted:
                    #    print p.Name
                    #print listSorted, ' Sorted; Top ', top_level_obj[j]
                    #stop
                    for i in range (0,lrl):
                        if hasattr(listSorted[i],'Placement'):
                            #if 'Plane' not in ob.InListRecursive[i].TypeId:
                            #print(listSorted[i].TypeId)
                            #if 'LinkView' in dir(FreeCADGui):
                            #    print(sel[0].SubElementNames)
                            if listSorted[i].hasExtension("App::GeoFeatureGroupExtension") or listSorted[i].TypeId == 'App::LinkGroup': # or listSorted[i].TypeId == 'App::Link':
                                acpy.Placement=acpy.Placement.multiply(listSorted[i].Placement)
            #say(acpy.Placement)
            #acpy.Placement=acpy.Placement.multiply(pOriginal)
            #acpy.Placement=acpy.Placement.multiply(pOriginal)
            if pad == 0: #note making wire from edge already resets the original placement
                acpy.Placement=acpy.Placement.multiply(pOriginal)
            nwshp.Placement = acpy.Placement
            if edge_op==1:
                #nwnorm = (subObj.Vertex2.Point - subObj.Vertex1.Point).normalize()
                #pV1=nwshp.Vertex1.Point; pV2=nwshp.Vertex2.Point
                pV1=nwshp.Vertexes[0].Point; pV2=nwshp.Vertexes[1].Point

                ss=subObj.copy()#SubObjects[0] is the edge list
                pointsDirection  = []
                pointsDirection = ss.discretize(Number=5) # discretize the path line
                nwnorm=pointsDirection[0].sub(pointsDirection[1])
            #print edge_op
            if pad==0 and not Vtx:
                face.Placement=nwshp.Placement
                nwnorm = face.normalAt(0,0)
            #else:
            #    pV1=findMidpoint(nwshp)
            #    nwnorm = nwshp.normalAt(0,0)
            if CPDockWidget.ui.rbBbox.isChecked():
                bbxCenter = nwshp.BoundBox.Center
            else:
            #    if hasattr(nwshp,'CenterOfMass'):
            #        bbxCenter = nwshp.CenterOfMass
            #    else:
            #        bbxCenter = nwshp.BoundBox.Center
                try:
                    if hasattr(nwshp,'Solids'):
                        if hasattr(nwshp.Solids[0],'CenterOfMass'):
                            bbxCenter = nwshp.Solids[0].CenterOfMass
                            #print 'Mass 1'
                    else:
                        bbxCenter = nwshp.BoundBox.Center
                except:
                    bbxCenter = nwshp.BoundBox.Center
        # else:
        #     nwshp = subObj.copy()
        #     if edge_op==1:
        #         #nwnorm = (subObj.Vertex2.Point - subObj.Vertex1.Point).normalize()
        #         pV1=nwshp.Vertex1.Point; pV2=nwshp.Vertex2.Point
        #     #else:
        #     #    nwnorm = nwshp.normalAt(0,0)
        #     bbxCenter = nwshp.BoundBox.Center
        if CPDockWidget.ui.rbSnap.isChecked():
            pCkd=FreeCAD.Vector(posz)
            #print 'points ',pV1, pV2, pCkd
            if edge_op==1:
                if 'Vertex' not in str(subObj):
                    d1=dist(pV1,pCkd);d2=dist(pV2,pCkd)
                    halfedge = (pV1.sub(pV2)).multiply(.5)
                    mid=FreeCAD.Vector.add(pV2,halfedge)
                    #mDraft.makePoint(mid[0],mid[1],mid[2]) #  creating a point takes selection
                    #sayw(mid)
                    d3=dist(pCkd,mid)
                    d=min(d1,d2,d3)
                    #sayerr('d1 '+str(d1)+' d2 '+str(d2)+' d3 '+str(d3)+' d '+str(d))
                    if d==d1:
                        Pnt=pV1
                    elif d==d2:
                        Pnt=pV2
                    else:
                        Pnt=mid
                else:
                    #Pnt=nwshp.Vertex1.Point
                    Pnt=nwshp.Vertexes[0].Point
            else: #edge_op=0
                Pnt=FreeCAD.Vector(bbxCenter)
            return nwshp.Placement, top_level_obj, bbxCenter, Pnt, orient, nwnorm
        elif (CPDockWidget.ui.rbSnap.isChecked() or CPDockWidget.ui.rbBbox.isChecked() or CPDockWidget.ui.rbMass.isChecked())\
                             and (edge_op==0 or pad==0):
            Pnt=FreeCAD.Vector(bbxCenter)
            return nwshp.Placement, top_level_obj, bbxCenter, Pnt, orient, nwnorm
        elif CPDockWidget.ui.rbRadius.isChecked():
            #bbxCenter=DraftGeomUtils.findMidpoint(circ)
            #bbxCenter=subObj.BoundBox.Center
            if edge_op==1:
                curve_type = type(nwshp.Edges[0].Curve)
                if curve_type == Part.Circle or curve_type == Part.ArcOfCircle:
                    circ=nwshp.Edges[0].Curve
                    bbxCenter=circ.Center
                elif 'BSpline' in str(curve_type):
                    arcs=nwshp.Edges[0].Curve.toBiArcs(tobiarc_tol)
                    sayerr('BSpline approximated to Arc')
                    #print (arcs[0].Radius)
                    #circ=arcs[0].Curve
                    bbxCenter=arcs[0].Center
                    rads = []
                    for a in arcs:
                        rads.append(a.Radius)
                    r0 = rads[0]; delta_tol = False
                    for r in rads:
                        if abs(r0 - r) > tobiarc_tol:
                            delta_tol = True
                    if delta_tol:
                        sayerr("more than an Arc in Bspline approximation!")
                        sayerr("only the first is dimensioned!")
                        for a in arcs:
                            say('Radius: '+str(a.Radius))
                    #print (arcs[0].Center)
                    #arcs[1].Radius
                else:
                    #bbxCenter=nwshp.BoundBox.Center
                    #bbxCenter=(nwshp.Vertex2.Point[0],nwshp.Vertex2.Point[1],nwshp.Vertex2.Point[2])
                    bbxCenter=(nwshp.Vertexes[1].Point[0],nwshp.Vertexes[1].Point[1],nwshp.Vertexes[1].Point[2])
            else:
                if CPDockWidget.ui.rbBbox.isChecked():
                    bbxCenter = nwshp.BoundBox.Center
                else:
                    try:
                        if hasattr(nwshp,'Solids'):
                            if hasattr(nwshp.Solids[0],'CenterOfMass'):
                                bbxCenter = nwshp.Solids[0].CenterOfMass
                                #print 'Mass 1'
                        else:
                            bbxCenter = nwshp.BoundBox.Center
                    except:
                        bbxCenter = nwshp.BoundBox.Center
                    #if hasattr(nwshp,'CenterOfMass'):
                    #    bbxCenter = nwshp.CenterOfMass
                    #else:
                    #    bbxCenter = nwshp.BoundBox.Center
            if pad==1:
                #Pnt=nwshp.Vertex1.Point
                Pnt=nwshp.Vertexes[0].Point
            else:
                Pnt=FreeCAD.Vector(bbxCenter)
            return Obj.Placement, top_level_obj, bbxCenter, Pnt, orient, nwnorm
            #sayerr(bbxCenter)
            #sayw(Pnt)
        elif CPDockWidget.ui.rbLength.isChecked():
            #bbxCenter=DraftGeomUtils.findMidpoint(circ)
            #bbxCenter=subObj.BoundBox.Center
            if edge_op==1:
                #Pnt=nwshp.Vertex1.Point
                Pnt=nwshp.Vertexes[0].Point
                bbxCenter=(nwshp.Vertexes[1].Point[0],nwshp.Vertexes[1].Point[1],nwshp.Vertexes[1].Point[2])
            else:
                #Pnt=nwshp.Vertex1.Point
                Pnt=nwshp.Vertexes[0].Point
                if CPDockWidget.ui.rbBbox.isChecked():
                    bbxCenter = nwshp.BoundBox.Center
                else:
                    try:
                        if hasattr(nwshp,'Solids'):
                            if hasattr(nwshp.Solids[0],'CenterOfMass'):
                                bbxCenter = nwshp.Solids[0].CenterOfMass
                                #print 'Mass 1'
                        else:
                            bbxCenter = nwshp.BoundBox.Center
                    except:
                        bbxCenter = nwshp.BoundBox.Center
                    #if hasattr(nwshp,'CenterOfMass'):
                    #    bbxCenter = nwshp.CenterOfMass
                    #else:
                    #    bbxCenter = nwshp.BoundBox.Center
            return Obj.Placement, top_level_obj, bbxCenter, Pnt, orient, nwnorm
        elif CPDockWidget.ui.rbAngle.isChecked():
            #bbxCenter=DraftGeomUtils.findMidpoint(circ)
            #bbxCenter=subObj.BoundBox.Center
            if edge_op==1:
                #Pnt=nwshp.Vertex1.Point
                Pnt=nwshp.Vertexes[0].Point
                #bbxCenter=(nwshp.Vertex2.Point[0],nwshp.Vertex2.Point[1],nwshp.Vertex2.Point[2])
                bbxCenter=(nwshp.Vertexes[1].Point[0],nwshp.Vertexes[1].Point[1],nwshp.Vertexes[1].Point[2])
            else:
                #Pnt=nwshp.Vertex1.Point
                Pnt=nwshp.Vertexes[0].Point
                if CPDockWidget.ui.rbBbox.isChecked():
                    bbxCenter = nwshp.BoundBox.Center
                else:
                    try:
                        if hasattr(nwshp,'Solids'):
                            if hasattr(nwshp.Solids[0],'CenterOfMass'):
                                bbxCenter = nwshp.Solids[0].CenterOfMass
                                #print 'Mass 1'
                        else:
                            bbxCenter = nwshp.BoundBox.Center
                    except:
                        bbxCenter = nwshp.BoundBox.Center
                    #if hasattr(nwshp,'CenterOfMass'):
                    #    bbxCenter = nwshp.CenterOfMass
                    #else:
                    #    bbxCenter = nwshp.BoundBox.Center
            return Obj.Placement, top_level_obj, bbxCenter, Pnt, orient, nwnorm


    elif 'Face' in str(subObj) or 'Edge' in str(subObj) or 'Vertex' in str(subObj): # not in hierarchy
        #say('Part obj')
        pad=0 #face
        face=subObj
        plcm=subObj.Placement
        #sayerr(plcm)
        if 'Edge' in str(subObj):
            wire = Part.Wire(subObj)
            orient=subObj.Orientation
            if subObj.isClosed():
                circ=subObj.copy()
                subObj = Part.Face(wire)
                face=subObj
                nwnorm = face.normalAt(0,0)
                plcm=subObj.Placement
                #norm = subObj.normalAt(0,0)
            else:
                edge_op=1
                ss=subObj.copy()#SubObjects[0] is the edge list
                pointsDirection  = []
                pointsDirection = ss.discretize(Number=5) # discretize the path line
                nwnorm=pointsDirection[0].sub(pointsDirection[1])
                #norm = (subObj.Vertex2.Point - subObj.Vertex1.Point).normalize()
                #pV1=subObj.Vertex1.Point; pV2=subObj.Vertex2.Point
                if len(subObj.Vertexes)>=2:
                    pV1=subObj.Vertexes[0].Point; pV2=subObj.Vertexes[1].Point
                else:
                    pV1=subObj.Vertexes[0].Point; pV2=subObj.Vertexes[0].Point
            pad=1 #edge
        if CPDockWidget.ui.rbBbox.isChecked() or CPDockWidget.ui.rbMass.isChecked():
            subObj=Obj.Shape #forcing object to evaluate center of BBox
            #print 'BBox or Mass'
        #else:
        #    norm = subObj.normalAt(0,0)
        if pad==0 and 'Vertex' not in str(subObj):
            try:
                nwnorm = face.normalAt(0,0)
            except:
                nwnorm = subObj.normalAt(0,0)
                #nwnorm = face.normalAt(0,0)
        if CPDockWidget.ui.rbBbox.isChecked():
            bbxCenter = subObj.BoundBox.Center
            #print 'BBox 1'
        else:
            try:
                if hasattr(subObj,'Solids'):
                    if hasattr(subObj.Solids[0],'CenterOfMass'):
                        bbxCenter = subObj.Solids[0].CenterOfMass
                        #print 'Mass 1'
                else:
                    bbxCenter = subObj.BoundBox.Center
            except:
                bbxCenter = subObj.BoundBox.Center
                #print 'BBox 2'
        top_level_obj=None
        #sayerr(str(norm)+str(Obj.Placement)+str(bbxCenter)+str(top_level_obj))
        pCkd=FreeCAD.Vector(posz)
        #print 'points ',pV1, pV2, pCkd
        if CPDockWidget.ui.rbSnap.isChecked():
            #sayw('points '+str(pV1)+str(pV2)+str(pCkd))
            if edge_op==1:
                if 'Vertex' not in str(subObj):
                    d1=dist(pV1,pCkd);d2=dist(pV2,pCkd)
                    halfedge = (pV1.sub(pV2)).multiply(.5)
                    mid=FreeCAD.Vector.add(pV2,halfedge)
                    #Draft.makePoint(mid[0],mid[1],mid[2]) #  creating a point takes selection
                    #sayw(mid)
                    d3=dist(pCkd,mid)
                    #sayerr('d1 '+str(d1)+' d2 '+str(d2)+' d3 '+str(d3))
                    d=min(d1,d2,d3)
                    if d==d1:
                        Pnt=pV1
                    elif d==d2:
                        Pnt=pV2
                    else:
                        Pnt=mid
                else:
                    #Pnt=subObj.Vertex1.Point
                    Pnt=subObj.Vertexes[0].Point
            else: #edge_op=0
                Pnt=FreeCAD.Vector(bbxCenter)
            #sayw(Pnt)
        elif (CPDockWidget.ui.rbSnap.isChecked() or CPDockWidget.ui.rbBbox.isChecked() or CPDockWidget.ui.rbMass.isChecked())\
                and (edge_op==0 or pad==0):
            Pnt=FreeCAD.Vector(bbxCenter)
        elif CPDockWidget.ui.rbRadius.isChecked():
            #bbxCenter=DraftGeomUtils.findMidpoint(circ)
            #bbxCenter=subObj.BoundBox.Center
            # print edge_op, '-', type(subObj.Curve)
            if edge_op==1:
                curve_type = type(subObj.Curve)
                #print (str(curve_type))
                if curve_type == Part.Circle or curve_type == Part.ArcOfCircle:
                    circ=subObj.Curve
                    bbxCenter=circ.Center
                elif 'BSpline' in str(curve_type):
                    #print (curve_type)
                    arcs=subObj.Curve.toBiArcs(tobiarc_tol)
                    sayerr('BSpline approximated to Arc')
                    #print (arcs[0].Radius)
                    #circ=arcs[0].Curve
                    bbxCenter=arcs[0].Center
                    rads = []
                    for a in arcs:
                        rads.append(a.Radius)
                    r0 = rads[0]; delta_tol = False
                    for r in rads:
                        if abs(r0 - r) > tobiarc_tol:
                            delta_tol = True
                    if delta_tol:
                        sayerr("more than an Arc in Bspline approximation!")
                        sayerr("only the first is dimensioned!")
                        for a in arcs:
                            say('Radius: '+str(a.Radius))
                    #print (arcs[0].Center)
                    #arcs[1].Radius
                else:
                    #bbxCenter=subObj.BoundBox.Center
                    #bbxCenter=(subObj.Vertex2.Point[0],subObj.Vertex2.Point[1],subObj.Vertex2.Point[2])
                    bbxCenter=(subObj.Vertexes[1].Point[0],subObj.Vertexes[1].Point[1],subObj.Vertexes[1].Point[2])
            else:
                if CPDockWidget.ui.rbBbox.isChecked():
                    bbxCenter = subObj.BoundBox.Center
                    #print 'BBox 3'
                try:
                    if hasattr(subObj,'Solids'):
                        if hasattr(subObj.Solids[0],'CenterOfMass'):
                            bbxCenter = subObj.Solids[0].CenterOfMass
                            #print 'Mass 1'
                    else:
                        bbxCenter = subObj.BoundBox.Center
                except:
                    bbxCenter = subObj.BoundBox.Center
            if pad==1:
                #Pnt=wire.Vertex1.Point
                Pnt=wire.Vertexes[0].Point
            else:
                Pnt=FreeCAD.Vector(bbxCenter)
            #sayerr(bbxCenter)
            #sayw(Pnt)
        elif CPDockWidget.ui.rbLength.isChecked():
            #bbxCenter=DraftGeomUtils.findMidpoint(circ)
            #bbxCenter=subObj.BoundBox.Center
            if edge_op==1:
                #Pnt=subObj.Vertex1.Point
                Pnt=subObj.Vertexes[0].Point
                #bbxCenter=(subObj.Vertex2.Point[0],subObj.Vertex2.Point[1],subObj.Vertex2.Point[2])
                bbxCenter=(subObj.Vertexes[1].Point[0],subObj.Vertexes[1].Point[1],subObj.Vertexes[1].Point[2])
            else:
                #Pnt=subObj.Vertex1.Point
                Pnt=subObj.Vertexes[0].Point
                if CPDockWidget.ui.rbBbox.isChecked():
                    bbxCenter = subObj.BoundBox.Center
                else:
                    if hasattr(subObj,'CenterOfMass'):
                        bbxCenter = subObj.CenterOfMass
                    else:
                        bbxCenter = subObj.BoundBox.Center
        elif CPDockWidget.ui.rbAngle.isChecked():
            if edge_op==1:
                #Pnt=subObj.Vertex1.Point
                Pnt=subObj.Vertexes[0].Point
                #bbxCenter=(subObj.Vertex2.Point[0],subObj.Vertex2.Point[1],subObj.Vertex2.Point[2])
                bbxCenter=(subObj.Vertexes[1].Point[0],subObj.Vertexes[1].Point[1],subObj.Vertexes[1].Point[2])
            else:
                #Pnt=subObj.Vertex1.Point
                Pnt=subObj.Vertexes[0].Point
                if CPDockWidget.ui.rbBbox.isChecked():
                    bbxCenter = subObj.BoundBox.Center
                else:
                    if hasattr(subObj,'CenterOfMass'):
                        bbxCenter = subObj.CenterOfMass
                    else:
                        bbxCenter = subObj.BoundBox.Center
        return plcm, top_level_obj, bbxCenter, Pnt, orient, nwnorm

##

####################################
# embedded button images
import base64
# "b64_data" is a variable containing your base64 encoded jpeg

closeW_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjY0IgogICBoZWlnaHQ9IjY0IgogICBpZD0ic3ZnMiIKICAgdmVyc2lvbj0iMS4xIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjQ4LjUgcjEwMDQwIgogICBzb2RpcG9kaTpkb2NuYW1lPSJlZGl0X0NhbmNlbC5zdmciCiAgIHZpZXdCb3g9IjAgMCA2NCA2NCI+CiAgPGRlZnMKICAgICBpZD0iZGVmczQiPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODc5IgogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIj4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzODgxIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNhNDAwMDA7c3RvcC1vcGFjaXR5OjEiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMzg4MyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZWYyOTI5O3N0b3Atb3BhY2l0eToxIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mzg2OSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNhNDAwMDA7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzODcxIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZWYyOTI5O3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzg3MyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDM4NjkiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODc1IgogICAgICAgeDE9Ii00NSIKICAgICAgIHkxPSIxMDQ0LjM2MjIiCiAgICAgICB4Mj0iLTU1IgogICAgICAgeTI9Ijk5NC4zNjIxOCIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjg2NjQ3NzI3LDAsMCwwLjg2NjQ3NzM5LDczLjY1MzQwOSwxMzYuMzAzOTEpIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzODc5IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mzg3NyIKICAgICAgIHgxPSItNDUiCiAgICAgICB5MT0iMTA0NC4zNjIyIgogICAgICAgeDI9Ii01NSIKICAgICAgIHkyPSI5OTQuMzYyMTgiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC44NjY0NzcyNywwLDAsMC44NjY0NzczOSw3My42NTM0MDksMTM2LjMwMzkxKSIgLz4KICA8L2RlZnM+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjYuNTU3NzM4IgogICAgIGlua3NjYXBlOmN4PSI1MC4yNzE5NTgiCiAgICAgaW5rc2NhcGU6Y3k9IjMyLjkwMDkyNCIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTU5OCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI4MzYiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjI3IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjAiCiAgICAgaW5rc2NhcGU6c25hcC1nbG9iYWw9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC1iYm94PSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtbm9kZXM9InRydWUiPgogICAgPGlua3NjYXBlOmdyaWQKICAgICAgIHR5cGU9Inh5Z3JpZCIKICAgICAgIGlkPSJncmlkMTE1MjEiCiAgICAgICBlbXBzcGFjaW5nPSIyIgogICAgICAgZG90dGVkPSJmYWxzZSIKICAgICAgIHZpc2libGU9InRydWUiCiAgICAgICBlbmFibGVkPSJ0cnVlIgogICAgICAgc25hcHZpc2libGVncmlkbGluZXNvbmx5PSJ0cnVlIiAvPgogIDwvc29kaXBvZGk6bmFtZWR2aWV3PgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTciPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLTk4OC4zNjIxOCkiPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMyODAwMDA7c3Ryb2tlLXdpZHRoOjE2O3N0cm9rZS1saW5lY2FwOnNxdWFyZTtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTMsMTAwMS4zNjIyIDM4LjEyNSwzOC4xMjUiCiAgICAgICBpZD0icGF0aDMwMDIiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMjgwMDAwO3N0cm9rZS13aWR0aDoxNjtzdHJva2UtbGluZWNhcDpzcXVhcmU7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJNIDUxLjEyNSwxMDAxLjM2MjIgMTMsMTAzOS40ODcyIgogICAgICAgaWQ9InBhdGgzMDAyLTYiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZWYyOTI5O3N0cm9rZS13aWR0aDoxMjtzdHJva2UtbGluZWNhcDpzcXVhcmU7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICBkPSJtIDEzLDEwMDEuMzYyMiAzOC4xMjUsMzguMTI1IgogICAgICAgaWQ9InBhdGgzMDAyLTciCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZWYyOTI5O3N0cm9rZS13aWR0aDoxMjtzdHJva2UtbGluZWNhcDpzcXVhcmU7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICBkPSJNIDUxLjEyNSwxMDAxLjM2MjIgMTMsMTAzOS40ODcyIgogICAgICAgaWQ9InBhdGgzMDAyLTYtNSIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOnVybCgjbGluZWFyR3JhZGllbnQzODc3KTtzdHJva2Utd2lkdGg6ODtzdHJva2UtbGluZWNhcDpzcXVhcmU7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICBkPSJtIDEzLDEwMDEuMzYyMiAzOC4xMjUsMzguMTI1IgogICAgICAgaWQ9InBhdGgzMDAyLTctNiIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOnVybCgjbGluZWFyR3JhZGllbnQzODc1KTtzdHJva2Utd2lkdGg6ODtzdHJva2UtbGluZWNhcDpzcXVhcmU7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICBkPSJNIDUxLjEyNSwxMDAxLjM2MjIgMTMsMTAzOS40ODcyIgogICAgICAgaWQ9InBhdGgzMDAyLTYtNS0yIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiIC8+CiAgPC9nPgo8L3N2Zz4K
"""
un_dock_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpvc2I9Imh0dHA6Ly93d3cub3BlbnN3YXRjaGJvb2sub3JnL3VyaS8yMDA5L29zYiIKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHZlcnNpb249IjEuMCIKICAgeD0iMC4wMDAwMDAwIgogICB5PSIwLjAwMDAwMDAiCiAgIHdpZHRoPSI2NCIKICAgaGVpZ2h0PSI2NCIKICAgaWQ9InN2ZzExMzAwIgogICBzb2RpcG9kaTp2ZXJzaW9uPSIwLjMyIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjQ4LjQgcjk5MzkiCiAgIHNvZGlwb2RpOmRvY25hbWU9InVuLWRvY2suc3ZnIj4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE2NiI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGUgLz4KICAgICAgICA8ZGM6Y29udHJpYnV0b3I+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5Db3JleSBXb29kd29ydGg8L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOmNvbnRyaWJ1dG9yPgogICAgICAgIDxjYzpsaWNlbnNlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS8yLjAvIiAvPgogICAgICAgIDxkYzpzb3VyY2U+aHR0cDovL2ppbW1hYy5tdXNpY2hhbGwuY3o8L2RjOnNvdXJjZT4KICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPkpha3ViIFN0ZWluZXI8L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOmNyZWF0b3I+CiAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICA8cmRmOkJhZz4KICAgICAgICAgICAgPHJkZjpsaT5uZXc8L3JkZjpsaT4KICAgICAgICAgICAgPHJkZjpsaT5pbnNlcnQ8L3JkZjpsaT4KICAgICAgICAgICAgPHJkZjpsaT53aW5kb3c8L3JkZjpsaT4KICAgICAgICAgIDwvcmRmOkJhZz4KICAgICAgICA8L2RjOnN1YmplY3Q+CiAgICAgIDwvY2M6V29yaz4KICAgICAgPGNjOkxpY2Vuc2UKICAgICAgICAgcmRmOmFib3V0PSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS8yLjAvIj4KICAgICAgICA8Y2M6cGVybWl0cwogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvUmVwcm9kdWN0aW9uIiAvPgogICAgICAgIDxjYzpwZXJtaXRzCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9EaXN0cmlidXRpb24iIC8+CiAgICAgICAgPGNjOnJlcXVpcmVzCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9Ob3RpY2UiIC8+CiAgICAgICAgPGNjOnJlcXVpcmVzCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9BdHRyaWJ1dGlvbiIgLz4KICAgICAgICA8Y2M6cGVybWl0cwogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvRGVyaXZhdGl2ZVdvcmtzIiAvPgogICAgICAgIDxjYzpyZXF1aXJlcwogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvU2hhcmVBbGlrZSIgLz4KICAgICAgPC9jYzpMaWNlbnNlPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEzNjEiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGlkPSJiYXNlIgogICAgIGlua3NjYXBlOnpvb209IjUuNjU2ODU0MiIKICAgICBpbmtzY2FwZTpjeD0iLTIuMzI3NTAwNSIKICAgICBpbmtzY2FwZTpjeT0iMTkuMzY5NDQxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMTEzMDAiCiAgICAgc2hvd2dyaWQ9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC1iYm94PSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtbm9kZXM9ImZhbHNlIgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiPgogICAgPGlua3NjYXBlOmdyaWQKICAgICAgIHR5cGU9Inh5Z3JpZCIKICAgICAgIGlkPSJncmlkMzAxNiIKICAgICAgIGVtcHNwYWNpbmc9IjIiCiAgICAgICB2aXNpYmxlPSJ0cnVlIgogICAgICAgZW5hYmxlZD0idHJ1ZSIKICAgICAgIHNuYXB2aXNpYmxlZ3JpZGxpbmVzb25seT0idHJ1ZSIgLz4KICA8L3NvZGlwb2RpOm5hbWVkdmlldz4KICA8ZGVmcwogICAgIGlkPSJkZWZzMyI+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ2MzMiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMzMzMzMzO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDQ2MjkiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMzMzMzMzM7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDYzMSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4MzIiPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDQ2MjQiCiAgICAgICAgIG9mZnNldD0iMC4wMDAwMDAwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eToxIiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDQ2MjYiCiAgICAgICAgIG9mZnNldD0iMS4wMDAwMDAwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZDNkN2NmO3N0b3Atb3BhY2l0eToxIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxyYWRpYWxHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NTA2MCIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDUwMzEiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLTIuNzc0Mzg5LDAsMCwxLjk2OTcwNiwxMTIuNzYyMywtODcyLjg4NTQpIgogICAgICAgY3g9IjYwNS43MTQyOSIKICAgICAgIGN5PSI0ODYuNjQ3ODkiCiAgICAgICBmeD0iNjA1LjcxNDI5IgogICAgICAgZnk9IjQ4Ni42NDc4OSIKICAgICAgIHI9IjExNy4xNDI4NiIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NTA2MCI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOmJsYWNrO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDUwNjIiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOmJsYWNrO3N0b3Atb3BhY2l0eTowOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDUwNjQiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ1MDYwIgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50NTAyOSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgyLjc3NDM4OSwwLDAsMS45Njk3MDYsLTE4OTEuNjMzLC04NzIuODg1NCkiCiAgICAgICBjeD0iNjA1LjcxNDI5IgogICAgICAgY3k9IjQ4Ni42NDc4OSIKICAgICAgIGZ4PSI2MDUuNzE0MjkiCiAgICAgICBmeT0iNDg2LjY0Nzg5IgogICAgICAgcj0iMTE3LjE0Mjg2IiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1MDQ4Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6YmxhY2s7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNTA1MCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3A1MDU2IgogICAgICAgICBvZmZzZXQ9IjAuNSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6YmxhY2s7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjpibGFjaztzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A1MDUyIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NTA0OCIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDUwMjciCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMi43NzQzODksMCwwLDEuOTY5NzA2LC0xODkyLjE3OSwtODcyLjg4NTQpIgogICAgICAgeDE9IjMwMi44NTcxNSIKICAgICAgIHkxPSIzNjYuNjQ3ODkiCiAgICAgICB4Mj0iMzAyLjg1NzE1IgogICAgICAgeTI9IjYwOS41MDUwNyIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MTI1MTIiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eToxLjAwMDAwMDAiCiAgICAgICAgIG9mZnNldD0iMC4wMDAwMDAwIgogICAgICAgICBpZD0ic3RvcDEyNTEzIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmNTIwO3N0b3Atb3BhY2l0eTowLjg5MTA4OTA4IgogICAgICAgICBvZmZzZXQ9IjAuNTAwMDAwMDAiCiAgICAgICAgIGlkPSJzdG9wMTI1MTciIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmYzMDA7c3RvcC1vcGFjaXR5OjAuMDAwMDAwMCIKICAgICAgICAgb2Zmc2V0PSIxLjAwMDAwMDAiCiAgICAgICAgIGlkPSJzdG9wMTI1MTQiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0ODE2Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzM0NjVhNDtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIwLjAwMDAwMDAiCiAgICAgICAgIGlkPSJzdG9wNDgxOCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzcyOWZjZjtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIxLjAwMDAwMDAiCiAgICAgICAgIGlkPSJzdG9wNDgyMCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ4MDgiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxLjAwMDAwMDAiCiAgICAgICAgIG9mZnNldD0iMC4wMDAwMDAwIgogICAgICAgICBpZD0ic3RvcDQ4MTAiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjAuMDAwMDAwMCIKICAgICAgICAgb2Zmc2V0PSIxLjAwMDAwMDAiCiAgICAgICAgIGlkPSJzdG9wNDgxMiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4MzItNSIKICAgICAgIG9zYjpwYWludD0iZ3JhZGllbnQiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjAuMDAwMDAwMCIKICAgICAgICAgaWQ9InN0b3AzODM0IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZDNkN2NmO3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjEuMDAwMDAwMCIKICAgICAgICAgaWQ9InN0b3AzODM2IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxyYWRpYWxHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NDgwOCIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDEzNzIiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS45NDU3MzQsMCwwLDAuNjI3Mjc0LC05LjYyODQ1NSwyNC4yNTkyMSkiCiAgICAgICBjeD0iMTcuMzY4MzExIgogICAgICAgY3k9IjI1LjY4MTk0MiIKICAgICAgIGZ4PSIxNy4zNjgzMTEiCiAgICAgICBmeT0iMjUuNjgxOTQyIgogICAgICAgcj0iMTEuNzk5ODQ1IiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzODMyLTUiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQyMjY3IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDMuMjUzOTM1LDAsMCwzLjI5NTQ1MTcsLTE2LjM2NDA3NCwtMjQuNTQ2OTQzKSIKICAgICAgIHgxPSIxMy44MTczOTkiCiAgICAgICB5MT0iOC42NjQ3ODI1IgogICAgICAgeDI9IjE3Ljg4MDY4IgogICAgICAgeTI9IjIxLjc2NzU3OCIgLz4KICAgIDxyYWRpYWxHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NTA2MCIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDUwMjktOCIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgyLjc3NDM4OSwwLDAsMS45Njk3MDYsLTE4OTEuNjMzLC04NzIuODg1NCkiCiAgICAgICBjeD0iNjA1LjcxNDI5IgogICAgICAgY3k9IjQ4Ni42NDc4OSIKICAgICAgIGZ4PSI2MDUuNzE0MjkiCiAgICAgICBmeT0iNDg2LjY0Nzg5IgogICAgICAgcj0iMTE3LjE0Mjg2IiAvPgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ1MDYwIgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50NTAzMS0yIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC0yLjc3NDM4OSwwLDAsMS45Njk3MDYsMTEyLjc2MjMsLTg3Mi44ODU0KSIKICAgICAgIGN4PSI2MDUuNzE0MjkiCiAgICAgICBjeT0iNDg2LjY0Nzg5IgogICAgICAgZng9IjYwNS43MTQyOSIKICAgICAgIGZ5PSI0ODYuNjQ3ODkiCiAgICAgICByPSIxMTcuMTQyODYiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDUwNDgiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQxMTIiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMi43NzQzODksMCwwLDEuOTY5NzA2LC0xODkyLjE3OSwtODcyLjg4NTQpIgogICAgICAgeDE9IjMwMi44NTcxNSIKICAgICAgIHkxPSIzNjYuNjQ3ODkiCiAgICAgICB4Mj0iMzAyLjg1NzE1IgogICAgICAgeTI9IjYwOS41MDUwNyIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NDYzMyIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ2MzUiCiAgICAgICB4MT0iNTguNDQ2OTY4IgogICAgICAgeTE9IjU4Ljc3NjU0NiIKICAgICAgIHgyPSIzMy43NTQ1NTkiCiAgICAgICB5Mj0iMTIuNDYxMDUxIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDUwNDgiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMDQ5IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDIuNzc0Mzg5LDAsMCwxLjk2OTcwNiwtMTg5Mi4xNzksLTg3Mi44ODU0KSIKICAgICAgIHgxPSIzMDIuODU3MTUiCiAgICAgICB5MT0iMzY2LjY0Nzg5IgogICAgICAgeDI9IjMwMi44NTcxNSIKICAgICAgIHkyPSI2MDkuNTA1MDciIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDUwNjAiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQzMDUxIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDIuNzc0Mzg5LDAsMCwxLjk2OTcwNiwtMTg5MS42MzMsLTg3Mi44ODU0KSIKICAgICAgIGN4PSI2MDUuNzE0MjkiCiAgICAgICBjeT0iNDg2LjY0Nzg5IgogICAgICAgZng9IjYwNS43MTQyOSIKICAgICAgIGZ5PSI0ODYuNjQ3ODkiCiAgICAgICByPSIxMTcuMTQyODYiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDUwNjAiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQzMDUzIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC0yLjc3NDM4OSwwLDAsMS45Njk3MDYsMTEyLjc2MjMsLTg3Mi44ODU0KSIKICAgICAgIGN4PSI2MDUuNzE0MjkiCiAgICAgICBjeT0iNDg2LjY0Nzg5IgogICAgICAgZng9IjYwNS43MTQyOSIKICAgICAgIGZ5PSI0ODYuNjQ3ODkiCiAgICAgICByPSIxMTcuMTQyODYiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDM4MzItNSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMwNTUiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMy4yNTM5MzUsMCwwLDMuMjk1NDUxNywtMTYuMzY0MDc0LC0yNC41NDY5NDMpIgogICAgICAgeDE9IjEzLjgxNzM5OSIKICAgICAgIHkxPSI4LjY2NDc4MjUiCiAgICAgICB4Mj0iMTcuODgwNjgiCiAgICAgICB5Mj0iMjEuNzY3NTc4IiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ1MDQ4IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzA1NyIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgyLjc3NDM4OSwwLDAsMS45Njk3MDYsLTE4OTIuMTc5LC04NzIuODg1NCkiCiAgICAgICB4MT0iMzAyLjg1NzE1IgogICAgICAgeTE9IjM2Ni42NDc4OSIKICAgICAgIHgyPSIzMDIuODU3MTUiCiAgICAgICB5Mj0iNjA5LjUwNTA3IiAvPgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ1MDYwIgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50MzA1OSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgyLjc3NDM4OSwwLDAsMS45Njk3MDYsLTE4OTEuNjMzLC04NzIuODg1NCkiCiAgICAgICBjeD0iNjA1LjcxNDI5IgogICAgICAgY3k9IjQ4Ni42NDc4OSIKICAgICAgIGZ4PSI2MDUuNzE0MjkiCiAgICAgICBmeT0iNDg2LjY0Nzg5IgogICAgICAgcj0iMTE3LjE0Mjg2IiAvPgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ1MDYwIgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50MzA2MSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgtMi43NzQzODksMCwwLDEuOTY5NzA2LDExMi43NjIzLC04NzIuODg1NCkiCiAgICAgICBjeD0iNjA1LjcxNDI5IgogICAgICAgY3k9IjQ4Ni42NDc4OSIKICAgICAgIGZ4PSI2MDUuNzE0MjkiCiAgICAgICBmeT0iNDg2LjY0Nzg5IgogICAgICAgcj0iMTE3LjE0Mjg2IiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NjMzIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzA2MyIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgeDE9IjU4LjQ0Njk2OCIKICAgICAgIHkxPSI1OC43NzY1NDYiCiAgICAgICB4Mj0iMzMuNzU0NTU5IgogICAgICAgeTI9IjEyLjQ2MTA1MSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NTA0OCIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMwODMiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMi43NzQzODksMCwwLDEuOTY5NzA2LC0xODkyLjE3OSwtODcyLjg4NTQpIgogICAgICAgeDE9IjMwMi44NTcxNSIKICAgICAgIHkxPSIzNjYuNjQ3ODkiCiAgICAgICB4Mj0iMzAyLjg1NzE1IgogICAgICAgeTI9IjYwOS41MDUwNyIgLz4KICAgIDxyYWRpYWxHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NTA2MCIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDMwODUiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMi43NzQzODksMCwwLDEuOTY5NzA2LC0xODkxLjYzMywtODcyLjg4NTQpIgogICAgICAgY3g9IjYwNS43MTQyOSIKICAgICAgIGN5PSI0ODYuNjQ3ODkiCiAgICAgICBmeD0iNjA1LjcxNDI5IgogICAgICAgZnk9IjQ4Ni42NDc4OSIKICAgICAgIHI9IjExNy4xNDI4NiIgLz4KICAgIDxyYWRpYWxHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NTA2MCIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDMwODciCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLTIuNzc0Mzg5LDAsMCwxLjk2OTcwNiwxMTIuNzYyMywtODcyLjg4NTQpIgogICAgICAgY3g9IjYwNS43MTQyOSIKICAgICAgIGN5PSI0ODYuNjQ3ODkiCiAgICAgICBmeD0iNjA1LjcxNDI5IgogICAgICAgZnk9IjQ4Ni42NDc4OSIKICAgICAgIHI9IjExNy4xNDI4NiIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NDYzMyIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMwODkiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHgxPSI1OC40NDY5NjgiCiAgICAgICB5MT0iNTguNzc2NTQ2IgogICAgICAgeDI9IjMzLjc1NDU1OSIKICAgICAgIHkyPSIxMi40NjEwNTEiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDUwNDgiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMDkxIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDIuNzc0Mzg5LDAsMCwxLjk2OTcwNiwtMTg5Mi4xNzksLTg3Mi44ODU0KSIKICAgICAgIHgxPSIzMDIuODU3MTUiCiAgICAgICB5MT0iMzY2LjY0Nzg5IgogICAgICAgeDI9IjMwMi44NTcxNSIKICAgICAgIHkyPSI2MDkuNTA1MDciIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDUwNjAiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQzMDkzIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDIuNzc0Mzg5LDAsMCwxLjk2OTcwNiwtMTg5MS42MzMsLTg3Mi44ODU0KSIKICAgICAgIGN4PSI2MDUuNzE0MjkiCiAgICAgICBjeT0iNDg2LjY0Nzg5IgogICAgICAgZng9IjYwNS43MTQyOSIKICAgICAgIGZ5PSI0ODYuNjQ3ODkiCiAgICAgICByPSIxMTcuMTQyODYiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDUwNjAiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQzMDk1IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC0yLjc3NDM4OSwwLDAsMS45Njk3MDYsMTEyLjc2MjMsLTg3Mi44ODU0KSIKICAgICAgIGN4PSI2MDUuNzE0MjkiCiAgICAgICBjeT0iNDg2LjY0Nzg5IgogICAgICAgZng9IjYwNS43MTQyOSIKICAgICAgIGZ5PSI0ODYuNjQ3ODkiCiAgICAgICByPSIxMTcuMTQyODYiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDM4MzItNSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMwOTciCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMy4yNTM5MzUsMCwwLDMuMjk1NDUxNywtMTYuMzY0MDc0LC0yNC41NDY5NDMpIgogICAgICAgeDE9IjEzLjgxNzM5OSIKICAgICAgIHkxPSI4LjY2NDc4MjUiCiAgICAgICB4Mj0iMTcuODgwNjgiCiAgICAgICB5Mj0iMjEuNzY3NTc4IiAvPgogIDwvZGVmcz4KICA8ZwogICAgIGlkPSJnMzA2NSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMS4wMjA0MzMzLC0xLjgwNzcwODgpIj4KICAgIDxnCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjg1NzM3NSwwLDAsMC44NTczNzUsNi41OTQ2MDc4LDYuNjgwMDQxMikiCiAgICAgICBpZD0iZzMwNDAiPgogICAgICA8ZwogICAgICAgICBpZD0iZzQ2NDMiPgogICAgICAgIDxnCiAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4wMjg0NDcxMiwwLDAsMC4wMTg4NjY2NSw2MS44NTY3MDYsNTkuMjAwODI2KSIKICAgICAgICAgICBpZD0iZzUwMjItMiIKICAgICAgICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmUiPgogICAgICAgICAgPHJlY3QKICAgICAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjAuNDAyMDYxODU7Y29sb3I6IzAwMDAwMDtmaWxsOnVybCgjbGluZWFyR3JhZGllbnQzMDgzKTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZSIKICAgICAgICAgICAgIGlkPSJyZWN0NDE3My0xIgogICAgICAgICAgICAgd2lkdGg9IjEzMzkuNjMzNSIKICAgICAgICAgICAgIGhlaWdodD0iNDc4LjM1NzE4IgogICAgICAgICAgICAgeD0iLTE1NTkuMjUyMyIKICAgICAgICAgICAgIHk9Ii0xNTAuNjk2ODUiIC8+CiAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjAuNDAyMDYxODU7Y29sb3I6IzAwMDAwMDtmaWxsOnVybCgjcmFkaWFsR3JhZGllbnQzMDg1KTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZSIKICAgICAgICAgICAgIGQ9Im0gLTIxOS42MTg3NiwtMTUwLjY4MDM4IGMgMCwwIDAsNDc4LjMzMDc5IDAsNDc4LjMzMDc5IDE0Mi44NzQxNjYsMC45MDA0NSAzNDUuNDAwMjIsLTEwNy4xNjk2NiAzNDUuNDAwMTQsLTIzOS4xOTYxNzUgMCwtMTMyLjAyNjUzNyAtMTU5LjQzNjgxNiwtMjM5LjEzNDU5NSAtMzQ1LjQwMDE0LC0yMzkuMTM0NjE1IHoiCiAgICAgICAgICAgICBpZD0icGF0aDUwNTgtMCIKICAgICAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjYyIgLz4KICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjIgogICAgICAgICAgICAgaWQ9InBhdGg1MDE4LTUiCiAgICAgICAgICAgICBkPSJtIC0xNTU5LjI1MjMsLTE1MC42ODAzOCBjIDAsMCAwLDQ3OC4zMzA3OSAwLDQ3OC4zMzA3OSAtMTQyLjg3NDIsMC45MDA0NSAtMzQ1LjQwMDIsLTEwNy4xNjk2NiAtMzQ1LjQwMDIsLTIzOS4xOTYxNzUgMCwtMTMyLjAyNjUzNyAxNTkuNDM2OCwtMjM5LjEzNDU5NSAzNDUuNDAwMiwtMjM5LjEzNDYxNSB6IgogICAgICAgICAgICAgc3R5bGU9Im9wYWNpdHk6MC40MDIwNjE4NTtjb2xvcjojMDAwMDAwO2ZpbGw6dXJsKCNyYWRpYWxHcmFkaWVudDMwODcpO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIiAvPgogICAgICAgIDwvZz4KICAgICAgICA8cmVjdAogICAgICAgICAgIGlkPSJyZWN0MzgxOC04IgogICAgICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDMwODkpO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojOGQ4ZDhkO3N0cm9rZS13aWR0aDoxLjgwNDk5OTk1O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZSIKICAgICAgICAgICB5PSIxMC4zMzAxOCIKICAgICAgICAgICB4PSIxMC4zODIzMjEiCiAgICAgICAgICAgcnk9IjEuNDExOTg0OSIKICAgICAgICAgICByeD0iMS4yODY1ODAzIgogICAgICAgICAgIGhlaWdodD0iNTIuMzQ1MDAxIgogICAgICAgICAgIHdpZHRoPSI1Mi4zNDUwMDEiIC8+CiAgICAgICAgPHJlY3QKICAgICAgICAgICBpZD0icmVjdDQ5NjItNyIKICAgICAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjEuODA0OTk5OTU7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgICAgIHk9IjEyLjEzNTE4IgogICAgICAgICAgIHg9IjEyLjE4NzMyMiIKICAgICAgICAgICByeT0iMCIKICAgICAgICAgICByeD0iMCIKICAgICAgICAgICBoZWlnaHQ9IjQ4LjczNTAwMSIKICAgICAgICAgICB3aWR0aD0iNDguNzM1MDAxIiAvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZwogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC44NTczNzUsMCwwLDAuODU3Mzc1LDQuMDA4NDg0OSw0LjExNjg4NjQpIgogICAgICAgaWQ9ImczMDMxIj4KICAgICAgPGcKICAgICAgICAgaWQ9ImcxNDYiCiAgICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuNCwwKSI+CiAgICAgICAgPGcKICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjAyODQ0NzEyLDAsMCwwLjAxODg2NjY1LDUzLjAwNjk0NSw1MC42NjA3NTcpIgogICAgICAgICAgIGlkPSJnNTAyMiIKICAgICAgICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmUiPgogICAgICAgICAgPHJlY3QKICAgICAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjAuNDAyMDYxODU7Y29sb3I6IzAwMDAwMDtmaWxsOnVybCgjbGluZWFyR3JhZGllbnQzMDkxKTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTttYXJrZXI6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZSIKICAgICAgICAgICAgIGlkPSJyZWN0NDE3MyIKICAgICAgICAgICAgIHdpZHRoPSIxMzM5LjYzMzUiCiAgICAgICAgICAgICBoZWlnaHQ9IjQ3OC4zNTcxOCIKICAgICAgICAgICAgIHg9Ii0xNTU5LjI1MjMiCiAgICAgICAgICAgICB5PSItMTUwLjY5Njg1IiAvPgogICAgICAgICAgPHBhdGgKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBzdHlsZT0ib3BhY2l0eTowLjQwMjA2MTg1O2NvbG9yOiMwMDAwMDA7ZmlsbDp1cmwoI3JhZGlhbEdyYWRpZW50MzA5Myk7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjE7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGUiCiAgICAgICAgICAgICBkPSJtIC0yMTkuNjE4NzYsLTE1MC42ODAzOCBjIDAsMCAwLDQ3OC4zMzA3OSAwLDQ3OC4zMzA3OSAxNDIuODc0MTY2LDAuOTAwNDUgMzQ1LjQwMDIyLC0xMDcuMTY5NjYgMzQ1LjQwMDE0LC0yMzkuMTk2MTc1IDAsLTEzMi4wMjY1MzcgLTE1OS40MzY4MTYsLTIzOS4xMzQ1OTUgLTM0NS40MDAxNCwtMjM5LjEzNDYxNSB6IgogICAgICAgICAgICAgaWQ9InBhdGg1MDU4IgogICAgICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjIiAvPgogICAgICAgICAgPHBhdGgKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2MiCiAgICAgICAgICAgICBpZD0icGF0aDUwMTgiCiAgICAgICAgICAgICBkPSJtIC0xNTU5LjI1MjMsLTE1MC42ODAzOCBjIDAsMCAwLDQ3OC4zMzA3OSAwLDQ3OC4zMzA3OSAtMTQyLjg3NDIsMC45MDA0NSAtMzQ1LjQwMDIsLTEwNy4xNjk2NiAtMzQ1LjQwMDIsLTIzOS4xOTYxNzUgMCwtMTMyLjAyNjUzNyAxNTkuNDM2OCwtMjM5LjEzNDU5NSAzNDUuNDAwMiwtMjM5LjEzNDYxNSB6IgogICAgICAgICAgICAgc3R5bGU9Im9wYWNpdHk6MC40MDIwNjE4NTtjb2xvcjojMDAwMDAwO2ZpbGw6dXJsKCNyYWRpYWxHcmFkaWVudDMwOTUpO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIiAvPgogICAgICAgIDwvZz4KICAgICAgICA8cmVjdAogICAgICAgICAgIGlkPSJyZWN0MzgxOCIKICAgICAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOnVybCgjbGluZWFyR3JhZGllbnQzMDk3KTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzhkOGQ4ZDtzdHJva2Utd2lkdGg6MS44MDQ5OTk5NTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGUiCiAgICAgICAgICAgeT0iMS43OTAxMTE0IgogICAgICAgICAgIHg9IjEuNTMyNTYzMSIKICAgICAgICAgICByeT0iMS40MTE5ODQ5IgogICAgICAgICAgIHJ4PSIxLjI4NjU4MDMiCiAgICAgICAgICAgaGVpZ2h0PSI1Mi4zNDUwMDEiCiAgICAgICAgICAgd2lkdGg9IjUyLjM0NTAwMSIgLz4KICAgICAgICA8cmVjdAogICAgICAgICAgIGlkPSJyZWN0NDk2MiIKICAgICAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjEuODA0OTk5OTU7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgICAgIHk9IjMuNTk1MTExNCIKICAgICAgICAgICB4PSIzLjMzNzU2MyIKICAgICAgICAgICByeT0iMCIKICAgICAgICAgICByeD0iMCIKICAgICAgICAgICBoZWlnaHQ9IjQ4LjczNTAwMSIKICAgICAgICAgICB3aWR0aD0iNDguNzM1MDAxIiAvPgogICAgICA8L2c+CiAgICA8L2c+CiAgPC9nPgo8L3N2Zz4K
"""
minimize_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iNjRweCIKICAgaGVpZ2h0PSI2NHB4IgogICBpZD0ic3ZnMjk4NSIKICAgdmVyc2lvbj0iMS4xIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjQ4LjQgcjk5MzkiCiAgIHNvZGlwb2RpOmRvY25hbWU9Im1pbmltaXplLnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczI5ODciIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjUuMDk2ODMxMiIKICAgICBpbmtzY2FwZTpjeD0iLTU5Ljk3Mjg4NSIKICAgICBpbmtzY2FwZTpjeT0iMTYuMTkzNDEzIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Z3JpZC1iYm94PSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjU2MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzYxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpzbmFwLWJib3g9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC1ub2Rlcz0iZmFsc2UiPgogICAgPGlua3NjYXBlOmdyaWQKICAgICAgIHR5cGU9Inh5Z3JpZCIKICAgICAgIGlkPSJncmlkMjk4NyIKICAgICAgIGVtcHNwYWNpbmc9IjIiCiAgICAgICB2aXNpYmxlPSJ0cnVlIgogICAgICAgZW5hYmxlZD0idHJ1ZSIKICAgICAgIHNuYXB2aXNpYmxlZ3JpZGxpbmVzb25seT0idHJ1ZSIgLz4KICA8L3NvZGlwb2RpOm5hbWVkdmlldz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEyOTkwIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZSAvPgogICAgICAgIDxkYzpjcmVhdG9yPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+W3lvcmlrdmFuaGF2cmVdPC9kYzp0aXRsZT4KICAgICAgICAgIDwvY2M6QWdlbnQ+CiAgICAgICAgPC9kYzpjcmVhdG9yPgogICAgICAgIDxkYzp0aXRsZT5BcmNoX1NlY3Rpb25QbGFuZV9UcmVlPC9kYzp0aXRsZT4KICAgICAgICA8ZGM6ZGF0ZT4yMDExLTEyLTA2PC9kYzpkYXRlPgogICAgICAgIDxkYzpyZWxhdGlvbj5odHRwOi8vd3d3LmZyZWVjYWR3ZWIub3JnL3dpa2kvaW5kZXgucGhwP3RpdGxlPUFydHdvcms8L2RjOnJlbGF0aW9uPgogICAgICAgIDxkYzpwdWJsaXNoZXI+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5GcmVlQ0FEPC9kYzp0aXRsZT4KICAgICAgICAgIDwvY2M6QWdlbnQ+CiAgICAgICAgPC9kYzpwdWJsaXNoZXI+CiAgICAgICAgPGRjOmlkZW50aWZpZXI+RnJlZUNBRC9zcmMvTW9kL0FyY2gvUmVzb3VyY2VzL2ljb25zL0FyY2hfU2VjdGlvblBsYW5lX1RyZWUuc3ZnPC9kYzppZGVudGlmaWVyPgogICAgICAgIDxkYzpyaWdodHM+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5GcmVlQ0FEIExHUEwyKzwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6cmlnaHRzPgogICAgICAgIDxjYzpsaWNlbnNlPmh0dHBzOi8vd3d3LmdudS5vcmcvY29weWxlZnQvbGVzc2VyLmh0bWw8L2NjOmxpY2Vuc2U+CiAgICAgICAgPGRjOmNvbnRyaWJ1dG9yPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+W2Fncnlzb25dIEFsZXhhbmRlciBHcnlzb248L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOmNvbnRyaWJ1dG9yPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlkPSJsYXllcjEiCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciI+CiAgICA8cGF0aAogICAgICAgc29kaXBvZGk6dHlwZT0ic3RhciIKICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6Izk5OTk5OTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6IzRkNGQ0ZDtzdHJva2Utd2lkdGg6MS41NzQ4ODIyNztzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGlkPSJwYXRoMjk5NyIKICAgICAgIHNvZGlwb2RpOnNpZGVzPSIzIgogICAgICAgc29kaXBvZGk6Y3g9IjIyIgogICAgICAgc29kaXBvZGk6Y3k9IjE3LjA5MDkwOCIKICAgICAgIHNvZGlwb2RpOnIxPSIyMC40MzI1MTIiCiAgICAgICBzb2RpcG9kaTpyMj0iMTAuMjE2MjU3IgogICAgICAgc29kaXBvZGk6YXJnMT0iMi4wOTQzOTUxIgogICAgICAgc29kaXBvZGk6YXJnMj0iMy4xNDE1OTI3IgogICAgICAgaW5rc2NhcGU6ZmxhdHNpZGVkPSJ0cnVlIgogICAgICAgaW5rc2NhcGU6cm91bmRlZD0iMCIKICAgICAgIGlua3NjYXBlOnJhbmRvbWl6ZWQ9IjAiCiAgICAgICBkPSJtIDExLjc4Mzc0NCwzNC43ODU5ODMgMCwtMzUuMzkwMTQ5NjMgMzAuNjQ4NzY4LDE3LjY5NTA3NDYzIHoiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLDAuNTk3OTI3MDMsMS4xNDcyNDA3LDAsMTIuMzkyNjE0LDIxLjYwNjM2NCkiCiAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXk9IjMuMDU0Mjg1NyIgLz4KICA8L2c+Cjwvc3ZnPgo=
"""
Caliper_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHZlcnNpb249IjEuMSIKICAgc29kaXBvZGk6ZG9jbmFtZT0iQ2FsaXBlci5zdmciCiAgIGlua3NjYXBlOnZlcnNpb249IjEuMGJldGEyIChjOGQ1YzBlLCAyMDIwLTAxLTA4KSIKICAgc29kaXBvZGk6dmVyc2lvbj0iMC4zMiIKICAgaWQ9InN2ZzU3IgogICBoZWlnaHQ9IjQ4cHgiCiAgIHdpZHRoPSI0OHB4Ij4KICA8ZGVmcwogICAgIGlkPSJkZWZzMyI+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMyNDEiPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDMyNDMiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6d2hpdGU7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDMyNDUiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6d2hpdGU7c3RvcC1vcGFjaXR5OjA7IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzIyOSI+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMzIzMSIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojNTk4YmNiO3N0b3Atb3BhY2l0eToxOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzJmNWM5NjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMC43NTY3NTY3OCIKICAgICAgICAgaWQ9InN0b3AzMjQ5IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDMyMzMiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzIwM2U2NTtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMTQxIj4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzMTQzIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNhNDAwMDA7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDMxNDUiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmYzRjNDtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMDA4Ij4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzMDEwIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOndoaXRlO3N0b3Atb3BhY2l0eToxOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzMDEyIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNkM2QzZDM7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mjk3OCI+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMjk4MCIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjp3aGl0ZTtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMjk4MiIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZDVkNWQ1O3N0b3Atb3BhY2l0eToxOyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDUwNDgiPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDUwNTAiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6YmxhY2s7c3RvcC1vcGFjaXR5OjA7IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjpibGFjaztzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMC41IgogICAgICAgICBpZD0ic3RvcDUwNTYiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNTA1MiIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjpibGFjaztzdG9wLW9wYWNpdHk6MDsiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODEiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDM4MiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6d2hpdGU7c3RvcC1vcGFjaXR5OjAuODQ0NjYwMjI7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzgzIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzY4Ij4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzNjkiCiAgICAgICAgIG9mZnNldD0iMC4wMDAwMDAwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eTowLjEwMzA5Mjc4OyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzNzIiCiAgICAgICAgIG9mZnNldD0iMS4wMDAwMDAwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eTowLjAwMDAwMDA7IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MTA2NSI+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMTA2NiIKICAgICAgICAgb2Zmc2V0PSIwLjAwMDAwMDAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNiNWMwNTE7c3RvcC1vcGFjaXR5OjEuMDAwMDAwMDsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMTA2NyIKICAgICAgICAgb2Zmc2V0PSIxLjAwMDAwMDAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM4NThlM2Y7c3RvcC1vcGFjaXR5OjEuMDAwMDAwMDsiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQxNzIiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojNjE2YzA4O3N0b3Atb3BhY2l0eToxLjAwMDAwMDA7IgogICAgICAgICBvZmZzZXQ9IjAuMDAwMDAwMCIKICAgICAgICAgaWQ9InN0b3AxNzMiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM0OTUxMDY7c3RvcC1vcGFjaXR5OjEuMDAwMDAwMDsiCiAgICAgICAgIG9mZnNldD0iMS4wMDAwMDAwIgogICAgICAgICBpZD0ic3RvcDE3NCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDE2MSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM1NzU5NTU7c3RvcC1vcGFjaXR5OjEuMDAwMDAwMDsiCiAgICAgICAgIG9mZnNldD0iMC4wMDAwMDAwIgogICAgICAgICBpZD0ic3RvcDE2MiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzdjN2U3OTtzdG9wLW9wYWNpdHk6MS4wMDAwMDAwOyIKICAgICAgICAgb2Zmc2V0PSIxLjAwMDAwMDAiCiAgICAgICAgIGlkPSJzdG9wMTYzIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MTU3Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2JhYmRiNjtzdG9wLW9wYWNpdHk6MS4wMDAwMDAwOyIKICAgICAgICAgb2Zmc2V0PSIwLjAwMDAwMDAiCiAgICAgICAgIGlkPSJzdG9wMTU4IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZjFmNWVjO3N0b3Atb3BhY2l0eToxLjAwMDAwMDA7IgogICAgICAgICBvZmZzZXQ9IjEuMDAwMDAwMCIKICAgICAgICAgaWQ9InN0b3AxNTkiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQxNDkiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDE1MCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AxNTEiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQxODY5Ij4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AxODcwIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNjOWM5Yzk7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDE4NzEiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6Izc4N2E3YjtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQxNDkiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQxNTIiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDMuNDk1MDE2LDAsMCwwLjM0NDMyMywtMi45NzIwODcsLTMuNDA4MTQ4ZS0yKSIKICAgICAgIHgxPSI3LjM3Mzg2MDgiCiAgICAgICB5MT0iMjcuMzc2NjIxIgogICAgICAgeDI9IjcuNTI5MTExOSIKICAgICAgIHkyPSI2OS40NjA1MDMiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzA1NyI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM3MjlmY2YiCiAgICAgICAgIG9mZnNldD0iMC4wMDAwMDAwIgogICAgICAgICBpZD0ic3RvcDMwNTkiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMzNDY1YTQ7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMS4wMDAwMDAwIgogICAgICAgICBpZD0ic3RvcDMwNjEiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogIDwvZGVmcz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtcm90YXRpb249IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpvYmplY3QtcGF0aHM9ImZhbHNlIgogICAgIGlua3NjYXBlOmdyaWQtcG9pbnRzPSJ0cnVlIgogICAgIGlua3NjYXBlOmd1aWRlLWJib3g9ImZhbHNlIgogICAgIGlua3NjYXBlOm9iamVjdC1iYm94PSJmYWxzZSIKICAgICBpbmtzY2FwZTpvYmplY3QtcG9pbnRzPSJmYWxzZSIKICAgICBpbmtzY2FwZTpvYmplY3Qtbm9kZXM9InRydWUiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9ImZhbHNlIgogICAgIGlua3NjYXBlOndpbmRvdy15PSItNyIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTciCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTAxMCIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE5MjAiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmdyaWQtYmJveD0idHJ1ZSIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIGlua3NjYXBlOmN5PSIyNCIKICAgICBpbmtzY2FwZTpjeD0iMjQiCiAgICAgaW5rc2NhcGU6em9vbT0iNy42MDQxNjY3IgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBib3JkZXJvcGFjaXR5PSIwLjEzMzMzMzMzIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2IgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBpZD0iYmFzZSIKICAgICBzaG93Ym9yZGVyPSJ0cnVlIj4KICAgIDxpbmtzY2FwZTpncmlkCiAgICAgICBlbXBzcGFjaW5nPSI0IgogICAgICAgZW1wb3BhY2l0eT0iMC4zOCIKICAgICAgIG9wYWNpdHk9IjAuMTUiCiAgICAgICBlbXBjb2xvcj0iIzNmM2ZmZiIKICAgICAgIGNvbG9yPSIjM2YzZmZmIgogICAgICAgc3BhY2luZ3k9IjEiCiAgICAgICBzcGFjaW5neD0iMSIKICAgICAgIG9yaWdpbnk9IjAiCiAgICAgICBvcmlnaW54PSIwIgogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9IkdyaWRGcm9tUHJlMDQ2U2V0dGluZ3MiIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgICA8ZGM6ZGF0ZSAvPgogICAgICAgIDxkYzpjcmVhdG9yPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+SmFrdWIgU3RlaW5lcjwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6Y3JlYXRvcj4KICAgICAgICA8ZGM6c3ViamVjdD4KICAgICAgICAgIDxyZGY6QmFnPgogICAgICAgICAgICA8cmRmOmxpPmVkaXQ8L3JkZjpsaT4KICAgICAgICAgICAgPHJkZjpsaT5kZWxldGU8L3JkZjpsaT4KICAgICAgICAgICAgPHJkZjpsaT5zaHJlZGRlcjwvcmRmOmxpPgogICAgICAgICAgPC9yZGY6QmFnPgogICAgICAgIDwvZGM6c3ViamVjdD4KICAgICAgICA8ZGM6cHVibGlzaGVyPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+Tm92ZWxsLCBJbmMuPC9kYzp0aXRsZT4KICAgICAgICAgIDwvY2M6QWdlbnQ+CiAgICAgICAgPC9kYzpwdWJsaXNoZXI+CiAgICAgICAgPGNjOmxpY2Vuc2UKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzIuMC8iIC8+CiAgICAgICAgPGRjOmNvbnRyaWJ1dG9yPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGUgLz4KICAgICAgICAgIDwvY2M6QWdlbnQ+CiAgICAgICAgPC9kYzpjb250cmlidXRvcj4KICAgICAgPC9jYzpXb3JrPgogICAgICA8Y2M6TGljZW5zZQogICAgICAgICByZGY6YWJvdXQ9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzIuMC8iPgogICAgICAgIDxjYzpwZXJtaXRzCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9SZXByb2R1Y3Rpb24iIC8+CiAgICAgICAgPGNjOnBlcm1pdHMKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL0Rpc3RyaWJ1dGlvbiIgLz4KICAgICAgICA8Y2M6cmVxdWlyZXMKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL05vdGljZSIgLz4KICAgICAgICA8Y2M6cmVxdWlyZXMKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL0F0dHJpYnV0aW9uIiAvPgogICAgICAgIDxjYzpwZXJtaXRzCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9EZXJpdmF0aXZlV29ya3MiIC8+CiAgICAgICAgPGNjOnJlcXVpcmVzCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9TaGFyZUFsaWtlIiAvPgogICAgICA8L2NjOkxpY2Vuc2U+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaWQ9ImxheWVyMSI+CiAgICA8ZwogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC45Mjk1NDk4OCwwLDAsMC45Mjk1NDk4OCwxNy4wMjk4NTMsMTYuMDAzNTI4KSIKICAgICAgIGlkPSJnMTk4Ij4KICAgICAgPHBhdGgKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjExMy4xMjMwNSIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjExMy4xMjMwNSIKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjY2NjY2NjY2MiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlkPSJwYXRoNDQ5OCIKICAgICAgICAgZD0ibSAzNC42Nzk0NDEsMzcuNzgzNTUxIC0zOCwtMzYuMDAwMDAwNCAtMTIsMTIuMDAwMDAwNCAtMiwtMiA3Ljk5OTk5OTksLTE2LjAwMDAwMDQgdiAwIGwgMTAuMDAwMDAwMTIsLTkuOTk5OTk5NiAxLjk5OTk5OTk4LDEuOTk5OTk5IDgsLTMuOTk5OTk5IDIsMiAtNiw1Ljk5OTk5OTUgMjgsMjguMDAwMDAwNSIKICAgICAgICAgc3R5bGU9ImZpbGw6I2M4YmViNztmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzFhMWExYTtzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgICA8cGF0aAogICAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTEzLjEyMzA1IgogICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iMTEzLjEyMzA1IgogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2MiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlkPSJwYXRoNDUwMiIKICAgICAgICAgZD0ibSAxMy42Nzk0NDEsMC43ODM1NTA2IDcsLTcgMiwyIC0yLDYgMTEsMTEuMDAwMDAwNCAtMywzIHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNjOGJlYjc7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMxYTFhMWE7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjExMy4xMjMwNSIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjExMy4xMjMwNSIKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGg0NTA0IgogICAgICAgICBkPSJtIDIuNjc5NDQxLDUuNzgzNTUwNiA2LC02IgogICAgICAgICBzdHlsZT0iZmlsbDojZjJmMmYyO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojMWExYTFhO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMTMuMTIzMDUiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMTMuMTIzMDUiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmMmYyZjI7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMxYTFhMWE7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgZD0ibSA5LjY3OTQ0MSwxMC43ODM1NTEgMywtMy4wMDAwMDA0IgogICAgICAgICBpZD0icGF0aDQ1MDYiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMTMuMTIzMDUiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMTMuMTIzMDUiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlkPSJwYXRoNDUwOCIKICAgICAgICAgZD0ibSAxNS42Nzk0NDEsMTYuNzgzNTUxIDMsLTMiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmMmYyZjI7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMxYTFhMWE7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIgLz4KICAgICAgPHBhdGgKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjExMy4xMjMwNSIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjExMy4xMjMwNSIKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgICAgc3R5bGU9ImZpbGw6I2YyZjJmMjtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzFhMWExYTtzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIgogICAgICAgICBkPSJtIDIwLjY3OTQ0MSwyMy43ODM1NTEgNCwtNCIKICAgICAgICAgaWQ9InBhdGg0NTEwIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogICAgICA8cGF0aAogICAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTEzLjEyMzA1IgogICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iMTEzLjEyMzA1IgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBpZD0icGF0aDQ1MjAiCiAgICAgICAgIGQ9Im0gMjYuNjc5NDQxLDI5Ljc4MzU1MSA0LC00IgogICAgICAgICBzdHlsZT0iZmlsbDojZjJmMmYyO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojMWExYTFhO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMTMuMTIzMDUiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMTMuMTIzMDUiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2NjYyIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGg0NTAwIgogICAgICAgICBkPSJNIC05LjMyMDU1OTEsMjEuNzgzNTUxIDUuNjc5NDQxLDcuNzgzNTUwNiBsIDE2LDE2LjAwMDAwMDQgLTQsNCAtMTAsLTEwIC0xNSw2IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNjOGJlYjc7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMxYTFhMWE7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=
"""
Caliper_selected_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHZlcnNpb249IjEuMSIKICAgc29kaXBvZGk6ZG9jbmFtZT0iQ2FsaXBlci1zZWxlY3RlZC5zdmciCiAgIGlua3NjYXBlOnZlcnNpb249IjEuMGJldGEyIChjOGQ1YzBlLCAyMDIwLTAxLTA4KSIKICAgc29kaXBvZGk6dmVyc2lvbj0iMC4zMiIKICAgaWQ9InN2ZzU3IgogICBoZWlnaHQ9IjQ4cHgiCiAgIHdpZHRoPSI0OHB4Ij4KICA8ZGVmcwogICAgIGlkPSJkZWZzMyI+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMyNDEiPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDMyNDMiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6d2hpdGU7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDMyNDUiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6d2hpdGU7c3RvcC1vcGFjaXR5OjA7IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzIyOSI+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMzIzMSIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojNTk4YmNiO3N0b3Atb3BhY2l0eToxOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzJmNWM5NjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMC43NTY3NTY3OCIKICAgICAgICAgaWQ9InN0b3AzMjQ5IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDMyMzMiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzIwM2U2NTtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMTQxIj4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzMTQzIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNhNDAwMDA7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDMxNDUiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmYzRjNDtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMDA4Ij4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzMDEwIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOndoaXRlO3N0b3Atb3BhY2l0eToxOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzMDEyIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNkM2QzZDM7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mjk3OCI+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMjk4MCIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjp3aGl0ZTtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMjk4MiIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZDVkNWQ1O3N0b3Atb3BhY2l0eToxOyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDUwNDgiPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDUwNTAiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6YmxhY2s7c3RvcC1vcGFjaXR5OjA7IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjpibGFjaztzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMC41IgogICAgICAgICBpZD0ic3RvcDUwNTYiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wNTA1MiIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjpibGFjaztzdG9wLW9wYWNpdHk6MDsiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODEiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDM4MiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6d2hpdGU7c3RvcC1vcGFjaXR5OjAuODQ0NjYwMjI7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzgzIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzY4Ij4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzNjkiCiAgICAgICAgIG9mZnNldD0iMC4wMDAwMDAwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eTowLjEwMzA5Mjc4OyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzNzIiCiAgICAgICAgIG9mZnNldD0iMS4wMDAwMDAwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eTowLjAwMDAwMDA7IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MTA2NSI+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMTA2NiIKICAgICAgICAgb2Zmc2V0PSIwLjAwMDAwMDAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNiNWMwNTE7c3RvcC1vcGFjaXR5OjEuMDAwMDAwMDsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMTA2NyIKICAgICAgICAgb2Zmc2V0PSIxLjAwMDAwMDAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM4NThlM2Y7c3RvcC1vcGFjaXR5OjEuMDAwMDAwMDsiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQxNzIiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojNjE2YzA4O3N0b3Atb3BhY2l0eToxLjAwMDAwMDA7IgogICAgICAgICBvZmZzZXQ9IjAuMDAwMDAwMCIKICAgICAgICAgaWQ9InN0b3AxNzMiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM0OTUxMDY7c3RvcC1vcGFjaXR5OjEuMDAwMDAwMDsiCiAgICAgICAgIG9mZnNldD0iMS4wMDAwMDAwIgogICAgICAgICBpZD0ic3RvcDE3NCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDE2MSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM1NzU5NTU7c3RvcC1vcGFjaXR5OjEuMDAwMDAwMDsiCiAgICAgICAgIG9mZnNldD0iMC4wMDAwMDAwIgogICAgICAgICBpZD0ic3RvcDE2MiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzdjN2U3OTtzdG9wLW9wYWNpdHk6MS4wMDAwMDAwOyIKICAgICAgICAgb2Zmc2V0PSIxLjAwMDAwMDAiCiAgICAgICAgIGlkPSJzdG9wMTYzIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MTU3Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2JhYmRiNjtzdG9wLW9wYWNpdHk6MS4wMDAwMDAwOyIKICAgICAgICAgb2Zmc2V0PSIwLjAwMDAwMDAiCiAgICAgICAgIGlkPSJzdG9wMTU4IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZjFmNWVjO3N0b3Atb3BhY2l0eToxLjAwMDAwMDA7IgogICAgICAgICBvZmZzZXQ9IjEuMDAwMDAwMCIKICAgICAgICAgaWQ9InN0b3AxNTkiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQxNDkiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDE1MCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AxNTEiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQxODY5Ij4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AxODcwIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNjOWM5Yzk7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDE4NzEiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6Izc4N2E3YjtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQxNDkiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQxNTIiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDMuNDk1MDE2LDAsMCwwLjM0NDMyMywtMi45NzIwODcsLTMuNDA4MTQ4ZS0yKSIKICAgICAgIHgxPSI3LjM3Mzg2MDgiCiAgICAgICB5MT0iMjcuMzc2NjIxIgogICAgICAgeDI9IjcuNTI5MTExOSIKICAgICAgIHkyPSI2OS40NjA1MDMiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzA1NyIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMwNTMiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS45NDU1MzkyLDAsMCwxLjk0NTUzOTIsLTQ3Ljk5ODE4NSwtNTguNjczMDk0KSIKICAgICAgIHgxPSI0Mi4wMDI4ODQiCiAgICAgICB5MT0iMzUuNzM2NDA4IgogICAgICAgeDI9IjQyLjk4NDgwNiIKICAgICAgIHkyPSI0MC40Njg3MDQiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMwNTciPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojNzI5ZmNmIgogICAgICAgICBvZmZzZXQ9IjAuMDAwMDAwMCIKICAgICAgICAgaWQ9InN0b3AzMDU5IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMzQ2NWE0O3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjEuMDAwMDAwMCIKICAgICAgICAgaWQ9InN0b3AzMDYxIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICA8L2RlZnM+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlua3NjYXBlOmRvY3VtZW50LXJvdGF0aW9uPSIwIgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6b2JqZWN0LXBhdGhzPSJmYWxzZSIKICAgICBpbmtzY2FwZTpncmlkLXBvaW50cz0idHJ1ZSIKICAgICBpbmtzY2FwZTpndWlkZS1iYm94PSJmYWxzZSIKICAgICBpbmtzY2FwZTpvYmplY3QtYmJveD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6b2JqZWN0LXBvaW50cz0iZmFsc2UiCiAgICAgaW5rc2NhcGU6b2JqZWN0LW5vZGVzPSJ0cnVlIgogICAgIGlua3NjYXBlOnNob3dwYWdlc2hhZG93PSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTciCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii03IgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMTAiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxOTIwIgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJweCIKICAgICBpbmtzY2FwZTpncmlkLWJib3g9InRydWUiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBpbmtzY2FwZTpjeT0iMjQiCiAgICAgaW5rc2NhcGU6Y3g9IjI0IgogICAgIGlua3NjYXBlOnpvb209IjcuNjA0MTY2NyIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgYm9yZGVyb3BhY2l0eT0iMC4xMzMzMzMzMyIKICAgICBib3JkZXJjb2xvcj0iIzY2NiIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgaWQ9ImJhc2UiCiAgICAgc2hvd2JvcmRlcj0idHJ1ZSI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgZW1wc3BhY2luZz0iNCIKICAgICAgIGVtcG9wYWNpdHk9IjAuMzgiCiAgICAgICBvcGFjaXR5PSIwLjE1IgogICAgICAgZW1wY29sb3I9IiMzZjNmZmYiCiAgICAgICBjb2xvcj0iIzNmM2ZmZiIKICAgICAgIHNwYWNpbmd5PSIxIgogICAgICAgc3BhY2luZ3g9IjEiCiAgICAgICBvcmlnaW55PSIwIgogICAgICAgb3JpZ2lueD0iMCIKICAgICAgIHR5cGU9Inh5Z3JpZCIKICAgICAgIGlkPSJHcmlkRnJvbVByZTA0NlNldHRpbmdzIiAvPgogIDwvc29kaXBvZGk6bmFtZWR2aWV3PgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTQiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgICAgPGRjOmRhdGUgLz4KICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPkpha3ViIFN0ZWluZXI8L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOmNyZWF0b3I+CiAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICA8cmRmOkJhZz4KICAgICAgICAgICAgPHJkZjpsaT5lZGl0PC9yZGY6bGk+CiAgICAgICAgICAgIDxyZGY6bGk+ZGVsZXRlPC9yZGY6bGk+CiAgICAgICAgICAgIDxyZGY6bGk+c2hyZWRkZXI8L3JkZjpsaT4KICAgICAgICAgIDwvcmRmOkJhZz4KICAgICAgICA8L2RjOnN1YmplY3Q+CiAgICAgICAgPGRjOnB1Ymxpc2hlcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPk5vdmVsbCwgSW5jLjwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6cHVibGlzaGVyPgogICAgICAgIDxjYzpsaWNlbnNlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS8yLjAvIiAvPgogICAgICAgIDxkYzpjb250cmlidXRvcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlIC8+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6Y29udHJpYnV0b3I+CiAgICAgIDwvY2M6V29yaz4KICAgICAgPGNjOkxpY2Vuc2UKICAgICAgICAgcmRmOmFib3V0PSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS8yLjAvIj4KICAgICAgICA8Y2M6cGVybWl0cwogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvUmVwcm9kdWN0aW9uIiAvPgogICAgICAgIDxjYzpwZXJtaXRzCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9EaXN0cmlidXRpb24iIC8+CiAgICAgICAgPGNjOnJlcXVpcmVzCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9Ob3RpY2UiIC8+CiAgICAgICAgPGNjOnJlcXVpcmVzCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9BdHRyaWJ1dGlvbiIgLz4KICAgICAgICA8Y2M6cGVybWl0cwogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvRGVyaXZhdGl2ZVdvcmtzIiAvPgogICAgICAgIDxjYzpyZXF1aXJlcwogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3dlYi5yZXNvdXJjZS5vcmcvY2MvU2hhcmVBbGlrZSIgLz4KICAgICAgPC9jYzpMaWNlbnNlPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlkPSJsYXllcjEiPgogICAgPGcKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuOTI5NTQ5ODgsMCwwLDAuOTI5NTQ5ODgsMTcuMDI5ODUzLDE2LjAwMzUyOCkiCiAgICAgICBpZD0iZzE5OCI+CiAgICAgIDxwYXRoCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMTMuMTIzMDUiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMTMuMTIzMDUiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2NjY2NjY2NjIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBpZD0icGF0aDQ0OTgiCiAgICAgICAgIGQ9Im0gMzQuNjc5NDQxLDM3Ljc4MzU1MSAtMzgsLTM2LjAwMDAwMDQgLTEyLDEyLjAwMDAwMDQgLTIsLTIgNy45OTk5OTk5LC0xNi4wMDAwMDA0IHYgMCBsIDEwLjAwMDAwMDEyLC05Ljk5OTk5OTYgMS45OTk5OTk5OCwxLjk5OTk5OSA4LC0zLjk5OTk5OSAyLDIgLTYsNS45OTk5OTk1IDI4LDI4LjAwMDAwMDUiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNjOGJlYjc7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMxYTFhMWE7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjExMy4xMjMwNSIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjExMy4xMjMwNSIKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjY2NjIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBpZD0icGF0aDQ1MDIiCiAgICAgICAgIGQ9Im0gMTMuNjc5NDQxLDAuNzgzNTUwNiA3LC03IDIsMiAtMiw2IDExLDExLjAwMDAwMDQgLTMsMyB6IgogICAgICAgICBzdHlsZT0iZmlsbDojYzhiZWI3O2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojMWExYTFhO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMTMuMTIzMDUiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMTMuMTIzMDUiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlkPSJwYXRoNDUwNCIKICAgICAgICAgZD0ibSAyLjY3OTQ0MSw1Ljc4MzU1MDYgNiwtNiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2YyZjJmMjtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzFhMWExYTtzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgICA8cGF0aAogICAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTEzLjEyMzA1IgogICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iMTEzLjEyMzA1IgogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgICBzdHlsZT0iZmlsbDojZjJmMmYyO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojMWExYTFhO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgIGQ9Im0gOS42Nzk0NDEsMTAuNzgzNTUxIDMsLTMuMDAwMDAwNCIKICAgICAgICAgaWQ9InBhdGg0NTA2IgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogICAgICA8cGF0aAogICAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTEzLjEyMzA1IgogICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iMTEzLjEyMzA1IgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBpZD0icGF0aDQ1MDgiCiAgICAgICAgIGQ9Im0gMTUuNjc5NDQxLDE2Ljc4MzU1MSAzLC0zIgogICAgICAgICBzdHlsZT0iZmlsbDojZjJmMmYyO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojMWExYTFhO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMTMuMTIzMDUiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMTMuMTIzMDUiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmMmYyZjI7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMxYTFhMWE7c3Ryb2tlLXdpZHRoOjJweDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgZD0ibSAyMC42Nzk0NDEsMjMuNzgzNTUxIDQsLTQiCiAgICAgICAgIGlkPSJwYXRoNDUxMCIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgICAgPHBhdGgKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjExMy4xMjMwNSIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjExMy4xMjMwNSIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGg0NTIwIgogICAgICAgICBkPSJtIDI2LjY3OTQ0MSwyOS43ODM1NTEgNCwtNCIKICAgICAgICAgc3R5bGU9ImZpbGw6I2YyZjJmMjtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzFhMWExYTtzdHJva2Utd2lkdGg6MnB4O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIgogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIiAvPgogICAgICA8cGF0aAogICAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTEzLjEyMzA1IgogICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iMTEzLjEyMzA1IgogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2MiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlkPSJwYXRoNDUwMCIKICAgICAgICAgZD0iTSAtOS4zMjA1NTkxLDIxLjc4MzU1MSA1LjY3OTQ0MSw3Ljc4MzU1MDYgbCAxNiwxNi4wMDAwMDA0IC00LDQgLTEwLC0xMCAtMTUsNiB6IgogICAgICAgICBzdHlsZT0iZmlsbDojYzhiZWI3O2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojMWExYTFhO3N0cm9rZS13aWR0aDoycHg7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICA8L2c+CiAgICA8ZwogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC45Mjk1NDk4OCwwLDAsMC45Mjk1NDk4OCwxNi4zMjU0MDIsMTUuMjcwMjkyKSIKICAgICAgIGlkPSJnMTg4Ij4KICAgICAgPGcKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC44MjczOTQzLDAsMCwwLjUzMDE3MTM0LC0yMC4yMjAzNTMsMjMuMDQ5MzUzKSIKICAgICAgICAgaWQ9ImczMDQ4Ij4KICAgICAgICA8cGF0aAogICAgICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zdHJldGNoOm5vcm1hbDtmb250LXNpemU6NTkuOTAxMXB4O2xpbmUtaGVpZ2h0OjEyNSU7Zm9udC1mYW1pbHk6J0JpdHN0cmVhbSBWZXJhIFNhbnMnO3RleHQtYWxpZ246c3RhcnQ7d3JpdGluZy1tb2RlOmxyLXRiO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzM0NjVhNDtzdHJva2U6IzBiMTUyMTtzdHJva2Utd2lkdGg6MS44NzU1NTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgICAgIGQ9Im0gNDAuNDA2MzU3LDIxLjkwMTczMyB2IDAgSCA1OS41MTAwMzMgViA5LjAxMjExMjEgSCA0MC40MDYzNTcgdiAwIGggLTEzLjM3MjU3NCAxZS02IC0xOS4xMDM2NzY1IGwgLTFlLTYsMTIuODg5NjIwOSBoIDE5LjEwMzY3NjUgLTFlLTYgeiIKICAgICAgICAgICBpZD0idGV4dDEzMTQiCiAgICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjY2NjY2NjY2NjIgogICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpib2xkO2ZvbnQtc3RyZXRjaDpub3JtYWw7Zm9udC1zaXplOjU5LjkwMTFweDtsaW5lLWhlaWdodDoxMjUlO2ZvbnQtZmFtaWx5OidCaXRzdHJlYW0gVmVyYSBTYW5zJzt0ZXh0LWFsaWduOnN0YXJ0O3dyaXRpbmctbW9kZTpsci10Yjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOnVybCgjbGluZWFyR3JhZGllbnQzMDUzKTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzcyOWZjZjtzdHJva2Utd2lkdGg6MS44NzU1NTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIgogICAgICAgICAgIGQ9Im0gMzguNDk1OTg5LDIwLjA2MDM1OSB2IDAgSCA1Ny41OTk2NjUgViAxMC44NTM0ODcgSCAzOC40OTU5ODkgdiAwIGggLTkuNTUxODM4IDRlLTYgLTE5LjEwMzY3NjggbCAtNGUtNiw5LjIwNjg3MiBIIDI4Ljk0NDE1MSB2IDAgeiIKICAgICAgICAgICBpZD0icGF0aDcwNzYiCiAgICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjY2NjY2NjY2NjIgogICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICAgIDwvZz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=
"""
DimensionP1_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjY0cHgiCiAgIGhlaWdodD0iNjRweCIKICAgaWQ9InN2ZzI2NzYiCiAgIHNvZGlwb2RpOnZlcnNpb249IjAuMzIiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuMCByMTUyOTkiCiAgIHNvZGlwb2RpOmRvY25hbWU9IkRpbWVuc2lvblAxLnN2ZyIKICAgaW5rc2NhcGU6b3V0cHV0X2V4dGVuc2lvbj0ib3JnLmlua3NjYXBlLm91dHB1dC5zdmcuaW5rc2NhcGUiCiAgIHZlcnNpb249IjEuMSI+CiAgPGRlZnMKICAgICBpZD0iZGVmczI2NzgiPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MDc3Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6Izg4OGE4NTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A0MDc5IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMmUzNDM2O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDQwODEiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDMyIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3o9IjY0IDogMzIgOiAxIgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjMyIDogMjEuMzMzMzMzIDogMSIKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTI2ODQiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSIzODM2LTAtNi01Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2M0YTAwMDtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzODM4LTIiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmY2U5NGY7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzg0MC01IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzgzNi0wLTYiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMTA1LTMiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC44MzMwOTQ0NSwwLDAsMC44MzMwOTQ0NSwtMi40MTA4NDI2LDIuNzMxODY0NykiCiAgICAgICB4MT0iLTE4IgogICAgICAgeTE9IjE4IgogICAgICAgeDI9Ii0yMiIKICAgICAgIHkyPSI1IiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODM2LTAtNiI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNjNGEwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wMzgzOC0yLTciIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmY2U5NGY7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzg0MC01LTUiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzODM2LTAtMiIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMxMDUtMSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjgzMzA5NDQ1LDAsMCwwLjgzMzA5NDQ1LC0yLjQxMDg0MjYsMi43MzE4NjQ3KSIKICAgICAgIHgxPSItMTgiCiAgICAgICB5MT0iMTgiCiAgICAgICB4Mj0iLTIyIgogICAgICAgeTI9IjUiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4MzYtMC0yIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2M0YTAwMDtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzODM4LTItNzAiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmY2U5NGY7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzg0MC01LTkiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzODM2LTAtMSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMxMDUtNiIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjgzMzA5NDQ1LDAsMCwwLjgzMzA5NDQ1LC0yLjQxMDg0MjYsMi43MzE4NjQ3KSIKICAgICAgIHgxPSItMTgiCiAgICAgICB5MT0iMTgiCiAgICAgICB4Mj0iLTIyIgogICAgICAgeTI9IjUiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4MzYtMC0xIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2M0YTAwMDtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzODM4LTItOCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZjZTk0ZjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AzODQwLTUtNyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIHkyPSI1IgogICAgICAgeDI9Ii0yMiIKICAgICAgIHkxPSIxOCIKICAgICAgIHgxPSItMTgiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNTc4Mjk5MDksMCwwLDAuNTc4Mjk5MDksNTE3LjI5MzU1LDUyLjQyMjU3MSkiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMyNDYiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzODM2LTAtMSIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzgzNi0wLTMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMTA1LTIiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC44MzMwOTQ0NSwwLDAsMC44MzMwOTQ0NSwtMi40MTA4NDI2LDIuNzMxODY0NykiCiAgICAgICB4MT0iLTE4IgogICAgICAgeTE9IjE4IgogICAgICAgeDI9Ii0yMiIKICAgICAgIHkyPSI1IiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODM2LTAtMyI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNjNGEwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wMzgzOC0yLTc1IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmNlOTRmO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDM4NDAtNS05MiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQwNzciCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MDkxIgogICAgICAgeDE9IjQ1OC4yMTQyIgogICAgICAgeTE9IjM0LjYxMzgwOCIKICAgICAgIHgyPSI0NTkuNjkzOTciCiAgICAgICB5Mj0iMzAuMTc0NTE1IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQwNzctOSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQwOTMtOCIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgeDE9IjQ1OC4yMTQyIgogICAgICAgeTE9IjM0LjYxMzgwOCIKICAgICAgIHgyPSI0NTkuNjkzOTciCiAgICAgICB5Mj0iMzAuMTc0NTE1IiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MDc3LTkiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojODg4YTg1O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDQwNzktNiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzJlMzQzNjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A0MDgxLTAiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0MDc3LTAiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MDkzLTQiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHgxPSI0NTguMjE0MiIKICAgICAgIHkxPSIzNC42MTM4MDgiCiAgICAgICB4Mj0iNDU5LjY5Mzk3IgogICAgICAgeTI9IjMwLjE3NDUxNSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDA3Ny0wIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6Izg4OGE4NTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A0MDc5LTkiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyZTM0MzY7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDA4MS00IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgeTI9IjMwLjE3NDUxNSIKICAgICAgIHgyPSI0NTkuNjkzOTciCiAgICAgICB5MT0iMzQuNjEzODA4IgogICAgICAgeDE9IjQ1OC4yMTQyIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MTQ1IgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NDA3Ny0wIgogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0MDc3LTAiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODE5IgogICAgICAgeDE9IjIzMC4wMzE2NiIKICAgICAgIHkxPSI2NzUuMDQwMzQiCiAgICAgICB4Mj0iMTU1LjAxODg5IgogICAgICAgeTI9IjY0My4yODI4NCIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0MDc3LTAtMiIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4MTktMSIKICAgICAgIHgxPSIyMzAuMDMxNjYiCiAgICAgICB5MT0iNjc1LjA0MDM0IgogICAgICAgeDI9IjE1NS4wMTg4OSIKICAgICAgIHkyPSI2NDMuMjgyODQiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDA3Ny0wLTIiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojODg4YTg1O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDQwNzktOS03IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMmUzNDM2O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDQwODEtNC03IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgeTI9IjY0My4yODI4NCIKICAgICAgIHgyPSIxNTUuMDE4ODkiCiAgICAgICB5MT0iNjc1LjA0MDM0IgogICAgICAgeDE9IjIzMC4wMzE2NiIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzgzNiIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQwNzctMC0yIgogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODM2LTAtNi01Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzRlOWEwNjtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDM4MzgtMi03LTQiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM4YWUyMzQ7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AzODQwLTUtNS0xIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzgzNi0wLTYtNSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4MDEtMS0zLTEiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHgxPSItMTgiCiAgICAgICB5MT0iMTgiCiAgICAgICB4Mj0iLTIyIgogICAgICAgeTI9IjUiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC0wLjU3MzU1OTI5LDAsMCwwLjU3MzU1OTI5LDQ0Ni42MzE2OCw1Mi40MjEwOTkpIiAvPgogIDwvZGVmcz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iOS42ODc1IgogICAgIGlua3NjYXBlOmN4PSIxNC40IgogICAgIGlua3NjYXBlOmN5PSIzMiIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJnMzk0NiIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Z3JpZC1iYm94PSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTUzNiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI4MDEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii04IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOCIKICAgICBpbmtzY2FwZTpzbmFwLWJib3g9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC1ub2Rlcz0iZmFsc2UiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9ImdyaWQzMDU0IgogICAgICAgdW5pdHM9InB4IgogICAgICAgZW1wc3BhY2luZz0iMiIKICAgICAgIHZpc2libGU9InRydWUiCiAgICAgICBlbmFibGVkPSJ0cnVlIgogICAgICAgc25hcHZpc2libGVncmlkbGluZXNvbmx5PSJ0cnVlIgogICAgICAgc3BhY2luZ3g9IjEiCiAgICAgICBzcGFjaW5neT0iMSIKICAgICAgIG9yaWdpbng9IjAiCiAgICAgICBvcmlnaW55PSIwIiAvPgogIDwvc29kaXBvZGk6bmFtZWR2aWV3PgogIDxnCiAgICAgaWQ9ImxheWVyMSIKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIj4KICAgIDxnCiAgICAgICBpZD0iZzM5NjYiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjk0NjMwOTQsMCwwLDAuOTQ2MzA5NCwtNDIzLjk0OTkxLC0wLjg3MDUzNDMpIj4KICAgICAgPGcKICAgICAgICAgaWQ9ImczOTQ2Ij4KICAgICAgICA8ZwogICAgICAgICAgIGlkPSJnMzgwMSIKICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjgzODkyODcsMCwwLDAuODM4OTI4Nyw3MC45NjE0MjIsMTcuMTU5MjM1KSIKICAgICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMDg5MDk2IgogICAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4wODkwOTYiIC8+CiAgICAgICAgPGcKICAgICAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuODk1Mjg0MjIsMS4xMTY5NjM3KSIKICAgICAgICAgICBzdHlsZT0iZm9udC1zaXplOjIyLjUxNTM1Nzk3cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzJlMzQzNjtzdHJva2Utd2lkdGg6Mi4xMTM0NzM2NTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxO2ZvbnQtZmFtaWx5OkJpdHN0cmVhbSBWZXJhIFNhbnMiCiAgICAgICAgICAgaWQ9InRleHQzNzM1IgogICAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1MS4wODkwOTYiCiAgICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjUxLjA4OTA5NiI+CiAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgZD0ibSA1MTIuMjA3MDEsMTYuOTA2OTUyIDMuNTQxMDEsMCAwLC05LjQ2MDgwMDIgLTIuMzYwNjcsMCAwLC0xLjg5MjE1OTcgMi4zNjA2NywtMS44OTIxNTk2IDQuNzIxMzUsMCAwLDEzLjI0NTExOTUgMi4zNjA2NywwIDAsMy43ODQzMiAtOS40NDI2OSwwIDAsLTMuNzg0MzIiCiAgICAgICAgICAgICBzdHlsZT0iZm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpib2xkO2ZvbnQtc3RyZXRjaDpub3JtYWw7ZmlsbDojZmZmZmZmO3N0cm9rZTojMmUzNDM2O2ZvbnQtZmFtaWx5OkFyaWFsIEJsYWNrOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246J0FyaWFsIEJsYWNrLCBCb2xkJyIKICAgICAgICAgICAgIGlkPSJwYXRoMzA0OSIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2NjY2NjYyIgLz4KICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICBkPSJtIDUyNi4zNzEwNSwxNi45MDY5NTIgNS45MDE2OSwwIDAsMy43ODQzMiAtNC43MjEzNSwwIDAsLTMuNzg0MzIiCiAgICAgICAgICAgICBzdHlsZT0iZm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpib2xkO2ZvbnQtc3RyZXRjaDpub3JtYWw7ZmlsbDojZmZmZmZmO3N0cm9rZTojMmUzNDM2O2ZvbnQtZmFtaWx5OkFyaWFsIEJsYWNrOy1pbmtzY2FwZS1mb250LXNwZWNpZmljYXRpb246J0FyaWFsIEJsYWNrLCBCb2xkJyIKICAgICAgICAgICAgIGlkPSJwYXRoMzA1MSIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjIiAvPgogICAgICAgICAgPHBhdGgKICAgICAgICAgICAgIGQ9Im0gNTQ0LjU2NDgzLDEyLjE0OTA3IGMgLTEwZS02LC0yLjA1MjE3MSAtMC4xOTQyMywtMy40OTYwMjc2IC0wLjU4MjY3LC00LjMzMTU3MDIgLTAuMzgxMTMsLTAuODQyODQ2NyAtMS4wMjYxLC0xLjI2NDI3NjMgLTEuOTM0OTIsLTEuMjY0MjkwMSAtMC45MDg4MywxLjM4ZS01IC0xLjU1NzQ2LDAuNDIxNDQzNCAtMS45NDU5LDEuMjY0MjkwMSAtMC4zODg0NiwwLjgzNTU0MjYgLTAuNTgyNjgsMi4yNzkzOTkyIC0wLjU4MjY4LDQuMzMxNTcwMiAwLDIuMDc0MTc1IDAuMTk0MjIsMy41MzYzNTMgMC41ODI2OCw0LjM4NjUzNyAwLjM4ODQ0LDAuODUwMTkyIDEuMDM3MDcsMS4yNzUyODcgMS45NDU5LDEuMjc1Mjg0IDAuOTAxNDksM2UtNiAxLjU0NjQ2LC0wLjQyNTA5MiAxLjkzNDkyLC0xLjI3NTI4NCAwLjM4ODQ0LC0wLjg1MDE4NCAwLjU4MjY2LC0yLjMxMjM2MiAwLjU4MjY3LC00LjM4NjUzNyBtIDQuMjMyNjIsMC4wMzI5OCBjIC0xMGUtNiwyLjcxOTE0NSAtMC41ODYzNSw0LjgxODk2NCAtMS43NTkwMSw2LjI5OTQ2MyAtMS4xNzI2OSwxLjQ3MzE3MyAtMi44MzY0MiwyLjIwOTc1OSAtNC45OTEyLDIuMjA5NzU5IC0yLjE2MjEyLDAgLTMuODI5NTIsLTAuNzM2NTg2IC01LjAwMjE5LC0yLjIwOTc1OSAtMS4xNzI2NywtMS40ODA0OTkgLTEuNzU5MDEsLTMuNTgwMzE4IC0xLjc1OTAxLC02LjI5OTQ2MyAwLC0yLjcyNjQ2MTEgMC41ODYzNCwtNC44MjYyNzk5IDEuNzU5MDEsLTYuMjk5NDY1OCAxLjE3MjY3LC0xLjQ4MDQ4NjEgMi44NDAwNywtMi4yMjA3MzY0IDUuMDAyMTksLTIuMjIwNzUzMSAyLjE1NDc4LDEuNjdlLTUgMy44MTg1MSwwLjc0MDI2NyA0Ljk5MTIsMi4yMjA3NTMxIDEuMTcyNjYsMS40NzMxODU5IDEuNzU5LDMuNTczMDA0NyAxLjc1OTAxLDYuMjk5NDY1OCIKICAgICAgICAgICAgIHN0eWxlPSJmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zdHJldGNoOm5vcm1hbDtmaWxsOiNmZmZmZmY7c3Ryb2tlOiMyZTM0MzY7Zm9udC1mYW1pbHk6QXJpYWwgQmxhY2s7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonQXJpYWwgQmxhY2ssIEJvbGQnIgogICAgICAgICAgICAgaWQ9InBhdGgzMDUzIgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICBkPSJtIDU2Mi43OTc1OSwxMi4xNDkwNyBjIC0xMGUtNiwtMi4wNTIxNzEgLTAuMTk0MjMsLTMuNDk2MDI3OCAtMC41ODI2NywtNC4zMzE1NzA0IC0wLjM4MTEzLC0wLjg0Mjg0NjcgLTEuMDI2MSwtMS4yNjQyNzYzIC0xLjkzNDkyLC0xLjI2NDI5MDEgLTAuOTA4ODMsMS4zOGUtNSAtMS41NTc0NiwwLjQyMTQ0MzQgLTEuOTQ1OSwxLjI2NDI5MDEgLTAuMzg4NDYsMC44MzU1NDI2IC0wLjU4MjY4LDIuMjc5Mzk5NCAtMC41ODI2OCw0LjMzMTU3MDQgMCwyLjA3NDE3NSAwLjE5NDIyLDMuNTM2MzUzIDAuNTgyNjgsNC4zODY1MzcgMC4zODg0NCwwLjg1MDE5MiAxLjAzNzA3LDEuMjc1Mjg3IDEuOTQ1OSwxLjI3NTI4NCAwLjkwMTQ5LDNlLTYgMS41NDY0NiwtMC40MjUwOTIgMS45MzQ5MiwtMS4yNzUyODQgMC4zODg0NCwtMC44NTAxODQgMC41ODI2NiwtMi4zMTIzNjIgMC41ODI2NywtNC4zODY1MzcgbSA0LjIzMjYyLDAuMDMyOTggYyAtMTBlLTYsMi43MTkxNDUgLTAuNTg2MzUsNC44MTg5NjQgLTEuNzU5MDEsNi4yOTk0NjMgLTEuMTcyNjgsMS40NzMxNzMgLTIuODM2NDIsMi4yMDk3NTkgLTQuOTkxMiwyLjIwOTc1OSAtMi4xNjIxMiwwIC0zLjgyOTUyLC0wLjczNjU4NiAtNS4wMDIxOSwtMi4yMDk3NTkgLTEuMTcyNjcsLTEuNDgwNDk5IC0xLjc1OTAxLC0zLjU4MDMxOCAtMS43NTkwMSwtNi4yOTk0NjMgMCwtMi43MjY0NjEgMC41ODYzNCwtNC44MjYyODAxIDEuNzU5MDEsLTYuMjk5NDY2IDEuMTcyNjcsLTEuNDgwNDg2MSAyLjg0MDA3LC0yLjIyMDczNjQgNS4wMDIxOSwtMi4yMjA3NTMxIDIuMTU0NzgsMS42N2UtNSAzLjgxODUyLDAuNzQwMjY3IDQuOTkxMiwyLjIyMDc1MzEgMS4xNzI2NiwxLjQ3MzE4NTkgMS43NTksMy41NzMwMDUgMS43NTkwMSw2LjI5OTQ2NiIKICAgICAgICAgICAgIHN0eWxlPSJmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0OmJvbGQ7Zm9udC1zdHJldGNoOm5vcm1hbDtmaWxsOiNmZmZmZmY7c3Ryb2tlOiMyZTM0MzY7Zm9udC1mYW1pbHk6QXJpYWwgQmxhY2s7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonQXJpYWwgQmxhY2ssIEJvbGQnIgogICAgICAgICAgICAgaWQ9InBhdGgzMDU1IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgICAgICA8L2c+CiAgICAgICAgPHJlY3QKICAgICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMmUzNDM2O3N0cm9rZS13aWR0aDoyLjExMzQ3MzY1O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICAgICAgaWQ9InJlY3QzMTUxIgogICAgICAgICAgIHdpZHRoPSI0LjIyNjk0NzMiCiAgICAgICAgICAgaGVpZ2h0PSIyMy4yNDgyMDUiCiAgICAgICAgICAgeD0iNDU1LjQwMDYzIgogICAgICAgICAgIHk9IjM1Ljc5MjI0IgogICAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1MS4wODkwOTYiCiAgICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjUxLjA4OTA5NiIgLz4KICAgICAgICA8cGF0aAogICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhZTIzNDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzJlMjkwMDtzdHJva2Utd2lkdGg6Mi4xMTM0NzM2NTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgICAgIGlkPSJwYXRoNDI1MC03MS0yLTAiCiAgICAgICAgICAgZD0ibSA0NjIuMzQ0NDYsNTQuOTA0NDI0IGEgNi4zNTg4NjE3LDYuMzU5MTUxNyA4OS45Nzk1NzIgMSAwIC05LjY2MDEyLDguMjcyMzA3IDYuMzU4ODYxNyw2LjM1OTE1MTcgODkuOTc5NTcyIDEgMCA5LjY2MDEyLC04LjI3MjMwNyB6IgogICAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1MS4wODkwOTYiCiAgICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjUxLjA4OTA5NiIgLz4KICAgICAgICA8cmVjdAogICAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMyZTM0MzY7c3Ryb2tlLXdpZHRoOjIuMTEzNDczNjU7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZSIKICAgICAgICAgICBpZD0icmVjdDMxNTEtMiIKICAgICAgICAgICB3aWR0aD0iNC4yMjY5NDczIgogICAgICAgICAgIGhlaWdodD0iMjMuMjQ4MjA1IgogICAgICAgICAgIHg9IjUwNC4wMTA1MyIKICAgICAgICAgICB5PSIzNS43OTIyNCIKICAgICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMDg5MDk2IgogICAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4wODkwOTYiIC8+CiAgICAgICAgPHJlY3QKICAgICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMmUzNDM2O3N0cm9rZS13aWR0aDoyLjExMzQ3MzY1O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICAgICAgaWQ9InJlY3QzMTUxLTItOSIKICAgICAgICAgICB3aWR0aD0iNTAuNzIzNDE5IgogICAgICAgICAgIGhlaWdodD0iNC4yMjY5NDgzIgogICAgICAgICAgIHg9IjQ1Ni40NTczNCIKICAgICAgICAgICB5PSIzMS41NjUyOTQiCiAgICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjUxLjA4OTA5NiIKICAgICAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTEuMDg5MDk2IiAvPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICBzdHlsZT0iZmlsbDojZmNlOTRmO3N0cm9rZTojMmUyOTAwO3N0cm9rZS13aWR0aDoyLjExMzQ3MzY1O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgICAgaWQ9InBhdGg0MjUwLTcxLTIiCiAgICAgICAgICAgZD0ibSA1MDEuMjk0MDUsNTQuOTA0Mjk4IGEgNi4zNTkxNTE3LDYuMzU4ODYxNyAwLjAyMDQyODQ2IDEgMSA5LjY2MDEyLDguMjcyMzA3IDYuMzU5MTUxNyw2LjM1ODg2MTcgMC4wMjA0Mjg0NiAxIDEgLTkuNjYwMTIsLTguMjcyMzA3IHoiCiAgICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjUxLjA4OTA5NiIKICAgICAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTEuMDg5MDk2IiAvPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50MzI0Nik7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiNmY2U5NGY7c3Ryb2tlLXdpZHRoOjIuMTEzNDcyOTQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgICBpZD0icGF0aDQyNTAtNy0zLTAiCiAgICAgICAgICAgZD0ibSA1MDMuMDQ3OTcsNTYuNDA5MTI3IGEgNC4wNDgwOTUxLDQuMDQ4MDk1MyAwIDEgMSA2LjE0OTQsNS4yNjYyMyA0LjA0ODA5NTEsNC4wNDgwOTUzIDAgMCAxIC02LjE0OTQsLTUuMjY2MjMgeiIKICAgICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMDg5MDk2IgogICAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4wODkwOTYiIC8+CiAgICAgICAgPGcKICAgICAgICAgICBpZD0iZzM4MDUiCiAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC43MTQxMjU0NiwwLDAsMC43MTQxMjU0NiwxMjEuODM3NzksOC45NjAxNjc4KSIKICAgICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50NDA5MSk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjIuOTU5NTI3MDIiCiAgICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjUxLjA4OTA5NiIKICAgICAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTEuMDg5MDk2Ij4KICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgtMC4wOTI2Nzg2NywtMC4wNzkxMjQzNCwwLjA3OTEyNDM0LC0wLjA5MjY3ODY3LDQzNi40Nzk0NiwxMTAuOTM3NDYpIgogICAgICAgICAgICAgZD0ibSAyNDUuNzE0MjgsNjU1LjIxOTMgYSA0OC41NzE0Myw0OC41NzE0MyAwIDAgMSAtNDguNTcxNDMsNDguNTcxNDMgNDguNTcxNDMsNDguNTcxNDMgMCAwIDEgLTQ4LjU3MTQzLC00OC41NzE0MyA0OC41NzE0Myw0OC41NzE0MyAwIDAgMSA0OC41NzE0MywtNDguNTcxNDMgNDguNTcxNDMsNDguNTcxNDMgMCAwIDEgNDguNTcxNDMsNDguNTcxNDMgeiIKICAgICAgICAgICAgIHNvZGlwb2RpOnJ5PSI0OC41NzE0MyIKICAgICAgICAgICAgIHNvZGlwb2RpOnJ4PSI0OC41NzE0MyIKICAgICAgICAgICAgIHNvZGlwb2RpOmN5PSI2NTUuMjE5MyIKICAgICAgICAgICAgIHNvZGlwb2RpOmN4PSIxOTcuMTQyODUiCiAgICAgICAgICAgICBpZD0icGF0aDI5MDEiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50MzgxOSk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjI0LjI4NjE3NDc2OTk5OTk5ODgwO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICAgICAgICBzb2RpcG9kaTp0eXBlPSJhcmMiIC8+CiAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoLTAuMDkyNjc4NjcsLTAuMDc5MTI0MzMsMC4wNzkxMjQzMywtMC4wOTI2Nzg2Nyw1MDQuNTQ4NTksMTEwLjkzNzQ1KSIKICAgICAgICAgICAgIGQ9Im0gMjQ1LjcxNDI4LDY1NS4yMTkzIGEgNDguNTcxNDMsNDguNTcxNDMgMCAwIDEgLTQ4LjU3MTQzLDQ4LjU3MTQzIDQ4LjU3MTQzLDQ4LjU3MTQzIDAgMCAxIC00OC41NzE0MywtNDguNTcxNDMgNDguNTcxNDMsNDguNTcxNDMgMCAwIDEgNDguNTcxNDMsLTQ4LjU3MTQzIDQ4LjU3MTQzLDQ4LjU3MTQzIDAgMCAxIDQ4LjU3MTQzLDQ4LjU3MTQzIHoiCiAgICAgICAgICAgICBzb2RpcG9kaTpyeT0iNDguNTcxNDMiCiAgICAgICAgICAgICBzb2RpcG9kaTpyeD0iNDguNTcxNDMiCiAgICAgICAgICAgICBzb2RpcG9kaTpjeT0iNjU1LjIxOTMiCiAgICAgICAgICAgICBzb2RpcG9kaTpjeD0iMTk3LjE0Mjg1IgogICAgICAgICAgICAgaWQ9InBhdGgyOTAxLTkiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50MzgzNik7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjI0LjI4NjE3NDc3O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICAgICAgICBzb2RpcG9kaTp0eXBlPSJhcmMiIC8+CiAgICAgICAgPC9nPgogICAgICAgIDxnCiAgICAgICAgICAgaWQ9ImcxMDAyIgogICAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KC0xLDAsMCwxLDkxNS4wMjg4LDApIgogICAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1MS4wODkwOTYiCiAgICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjUxLjA4OTA5NiI+CiAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgZD0ibSA0NjAuNzYwNTEsNTYuMzc0OTgxIGEgNC4wMTQ5MTUsNC4wMTQ5MTUyIDAgMSAwIC02LjA5ODk5LDUuMjIzMDY3IDQuMDE0OTE1LDQuMDE0OTE1MiAwIDAgMCA2LjA5ODk5LC01LjIyMzA2NyB6IgogICAgICAgICAgICAgaWQ9InBhdGg0MjUwLTctMy0yLTkiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50MzgwMS0xLTMtMSk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiM4YWUyMzQ7c3Ryb2tlLXdpZHRoOjIuMTgwODg3NDY7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICA8L2c+CiAgPC9nPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTQwMzgiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlIC8+CiAgICAgICAgPGNjOmxpY2Vuc2UKICAgICAgICAgICByZGY6cmVzb3VyY2U9IiIgLz4KICAgICAgICA8ZGM6ZGF0ZT5Nb24gT2N0IDEwIDEzOjQ0OjUyIDIwMTEgKzAwMDA8L2RjOmRhdGU+CiAgICAgICAgPGRjOmNyZWF0b3I+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5bd21heWVyXTwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6Y3JlYXRvcj4KICAgICAgICA8ZGM6cmlnaHRzPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+RnJlZUNBRCBMR1BMMis8L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOnJpZ2h0cz4KICAgICAgICA8ZGM6cHVibGlzaGVyPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+RnJlZUNBRDwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6cHVibGlzaGVyPgogICAgICAgIDxkYzppZGVudGlmaWVyPkZyZWVDQUQvc3JjL01vZC9EcmFmdC9SZXNvdXJjZXMvaWNvbnMvRHJhZnRfRGltZW5zaW9uLnN2ZzwvZGM6aWRlbnRpZmllcj4KICAgICAgICA8ZGM6cmVsYXRpb24+aHR0cDovL3d3dy5mcmVlY2Fkd2ViLm9yZy93aWtpL2luZGV4LnBocD90aXRsZT1BcnR3b3JrPC9kYzpyZWxhdGlvbj4KICAgICAgICA8ZGM6Y29udHJpYnV0b3I+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5bYWdyeXNvbl0gQWxleGFuZGVyIEdyeXNvbjwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6Y29udHJpYnV0b3I+CiAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICA8cmRmOkJhZz4KICAgICAgICAgICAgPHJkZjpsaT5saW5lPC9yZGY6bGk+CiAgICAgICAgICAgIDxyZGY6bGk+ZG90PC9yZGY6bGk+CiAgICAgICAgICAgIDxyZGY6bGk+bnVtYmVyPC9yZGY6bGk+CiAgICAgICAgICA8L3JkZjpCYWc+CiAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgIDxkYzpkZXNjcmlwdGlvbj5BIG51bWJlciBmbG9hdGluZyBhYm92ZSBhIGxpbmUgY29ycmVzcG9uZGluZyB0byB0aGUgdXBwZXIgdGhyZWUgc2lkZXMgb2YgYSByZWN0YW5nbGUgd2l0aCBhIGRvdCBhdCBlYWNmIGVuZHBvaW50IGFuZCBjb3JuZXI8L2RjOmRlc2NyaXB0aW9uPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KPC9zdmc+Cg==
"""
DimensionP2_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjY0cHgiCiAgIGhlaWdodD0iNjRweCIKICAgaWQ9InN2ZzI2NzYiCiAgIHNvZGlwb2RpOnZlcnNpb249IjAuMzIiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuMCByMTUyOTkiCiAgIHNvZGlwb2RpOmRvY25hbWU9IkRpbWVuc2lvblBCLnN2ZyIKICAgaW5rc2NhcGU6b3V0cHV0X2V4dGVuc2lvbj0ib3JnLmlua3NjYXBlLm91dHB1dC5zdmcuaW5rc2NhcGUiCiAgIHZlcnNpb249IjEuMSI+CiAgPGRlZnMKICAgICBpZD0iZGVmczI2NzgiPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MDc3Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6Izg4OGE4NTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A0MDc5IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMmUzNDM2O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDQwODEiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDMyIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3o9IjY0IDogMzIgOiAxIgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjMyIDogMjEuMzMzMzMzIDogMSIKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTI2ODQiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSIzODM2LTAtNi01Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2M0YTAwMDtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzODM4LTIiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmY2U5NGY7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzg0MC01IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzgzNi0wLTYiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMTA1LTMiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC44MzMwOTQ0NSwwLDAsMC44MzMwOTQ0NSwtMi40MTA4NDI2LDIuNzMxODY0NykiCiAgICAgICB4MT0iLTE4IgogICAgICAgeTE9IjE4IgogICAgICAgeDI9Ii0yMiIKICAgICAgIHkyPSI1IiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODM2LTAtNiI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNjNGEwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wMzgzOC0yLTciIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmY2U5NGY7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzg0MC01LTUiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzODM2LTAtMiIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMxMDUtMSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjgzMzA5NDQ1LDAsMCwwLjgzMzA5NDQ1LC0yLjQxMDg0MjYsMi43MzE4NjQ3KSIKICAgICAgIHgxPSItMTgiCiAgICAgICB5MT0iMTgiCiAgICAgICB4Mj0iLTIyIgogICAgICAgeTI9IjUiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4MzYtMC0yIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2M0YTAwMDtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzODM4LTItNzAiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmY2U5NGY7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzg0MC01LTkiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzODM2LTAtMSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMxMDUtNiIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjgzMzA5NDQ1LDAsMCwwLjgzMzA5NDQ1LC0yLjQxMDg0MjYsMi43MzE4NjQ3KSIKICAgICAgIHgxPSItMTgiCiAgICAgICB5MT0iMTgiCiAgICAgICB4Mj0iLTIyIgogICAgICAgeTI9IjUiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4MzYtMC0xIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2M0YTAwMDtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzODM4LTItOCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZjZTk0ZjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AzODQwLTUtNyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDM4MzYtMC0zIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzEwNS0yIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuODMzMDk0NDUsMCwwLDAuODMzMDk0NDUsLTIuNDEwODQyNiwyLjczMTg2NDcpIgogICAgICAgeDE9Ii0xOCIKICAgICAgIHkxPSIxOCIKICAgICAgIHgyPSItMjIiCiAgICAgICB5Mj0iNSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzgzNi0wLTMiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojYzRhMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDM4MzgtMi03NSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZjZTk0ZjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AzODQwLTUtOTIiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0MDc3LTkiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MDkzLTgiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHgxPSI0NTguMjE0MiIKICAgICAgIHkxPSIzNC42MTM4MDgiCiAgICAgICB4Mj0iNDU5LjY5Mzk3IgogICAgICAgeTI9IjMwLjE3NDUxNSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDA3Ny05Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6Izg4OGE4NTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A0MDc5LTYiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyZTM0MzY7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDA4MS0wIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NDA3Ny0wIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDA5My00IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICB4MT0iNDU4LjIxNDIiCiAgICAgICB5MT0iMzQuNjEzODA4IgogICAgICAgeDI9IjQ1OS42OTM5NyIKICAgICAgIHkyPSIzMC4xNzQ1MTUiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQwNzctMCI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM4ODhhODU7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNDA3OS05IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMmUzNDM2O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDQwODEtNCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIHkyPSIzMC4xNzQ1MTUiCiAgICAgICB4Mj0iNDU5LjY5Mzk3IgogICAgICAgeTE9IjM0LjYxMzgwOCIKICAgICAgIHgxPSI0NTguMjE0MiIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDE0NSIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQwNzctMCIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NDA3Ny0wLTIiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODE5LTEiCiAgICAgICB4MT0iMjMwLjAzMTY2IgogICAgICAgeTE9IjY3NS4wNDAzNCIKICAgICAgIHgyPSIxNTUuMDE4ODkiCiAgICAgICB5Mj0iNjQzLjI4Mjg0IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQwNzctMC0yIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6Izg4OGE4NTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A0MDc5LTktNyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzJlMzQzNjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A0MDgxLTQtNyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4MzYtMC02LTUiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojNGU5YTA2O3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wMzgzOC0yLTctNCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzhhZTIzNDtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDM4NDAtNS01LTEiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzODM2LTAtNi02IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzgwMS0xLTMtMyIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgeDE9Ii0xOCIKICAgICAgIHkxPSIxOCIKICAgICAgIHgyPSItMjIiCiAgICAgICB5Mj0iNSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC41NzQ3MzUxLDAsMCwwLjU3NDczNTEsNDk0LjEwMjA3LDUyLjE0MTI1NCkiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4MzYtMC02LTYiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojYTQwMDAwO3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wMzgzOC0yLTctNyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2VmMjkyOTtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDM4NDAtNS01LTUiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzODM2LTAtNi01IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzgwMS0xLTMtMSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgeDE9Ii0xOCIKICAgICAgIHkxPSIxOCIKICAgICAgIHgyPSItMjIiCiAgICAgICB5Mj0iNSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLTAuNTczNTU5MjksMCwwLDAuNTczNTU5MjksNDQ2LjYzMTY4LDUyLjQyMTA5OSkiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQwNzctMC0yIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NTI3MCIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgeDE9IjIzMC4wMzE2NiIKICAgICAgIHkxPSI2NzUuMDQwMzQiCiAgICAgICB4Mj0iMTU1LjAxODg5IgogICAgICAgeTI9IjY0My4yODI4NCIgLz4KICA8L2RlZnM+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjkuNjg3NSIKICAgICBpbmtzY2FwZTpjeD0iMzIiCiAgICAgaW5rc2NhcGU6Y3k9IjMyIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImczOTQ2IgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJweCIKICAgICBpbmtzY2FwZTpncmlkLWJib3g9InRydWUiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxNTM2IgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjgwMSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTgiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii04IgogICAgIGlua3NjYXBlOnNuYXAtYmJveD0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLW5vZGVzPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIj4KICAgIDxpbmtzY2FwZTpncmlkCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBpZD0iZ3JpZDMwNTQiCiAgICAgICB1bml0cz0icHgiCiAgICAgICBlbXBzcGFjaW5nPSIyIgogICAgICAgdmlzaWJsZT0idHJ1ZSIKICAgICAgIGVuYWJsZWQ9InRydWUiCiAgICAgICBzbmFwdmlzaWJsZWdyaWRsaW5lc29ubHk9InRydWUiCiAgICAgICBzcGFjaW5neD0iMSIKICAgICAgIHNwYWNpbmd5PSIxIgogICAgICAgb3JpZ2lueD0iMCIKICAgICAgIG9yaWdpbnk9IjAiIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPGcKICAgICBpZD0ibGF5ZXIxIgogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiPgogICAgPGcKICAgICAgIGlkPSJnMzk2NiIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuOTQ2MzA5NCwwLDAsMC45NDYzMDk0LC00MjMuOTQ5OTEsLTAuODcwNTM0MykiPgogICAgICA8ZwogICAgICAgICBpZD0iZzM5NDYiPgogICAgICAgIDxnCiAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC44OTUyODQyMiwwLDAsMS4xMTY5NjM2LC03LjIzOTAyMTZlLTQsNy4zODUzMDI4ZS03KSIKICAgICAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc2l6ZToyMi41MTUzNTc5N3B4O2ZvbnQtZmFtaWx5OidCaXRzdHJlYW0gVmVyYSBTYW5zJztmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMyZTM0MzY7c3Ryb2tlLXdpZHRoOjIuMTEzNDczNjU7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgICBpZD0idGV4dDM3MzUiCiAgICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjUxLjA4OTA5NiIKICAgICAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTEuMDg5MDk2Ij4KICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICBkPSJtIDUxMi4yMDcwMSwxNi45MDY5NTIgaCAzLjU0MTAxIFYgNy40NDYxNTE4IGggLTIuMzYwNjcgViA1LjU1Mzk5MjEgbCAyLjM2MDY3LC0xLjg5MjE1OTYgaCA0LjcyMTM1IFYgMTYuOTA2OTUyIGggMi4zNjA2NyB2IDMuNzg0MzIgaCAtOS40NDI2OSB2IC0zLjc4NDMyIgogICAgICAgICAgICAgc3R5bGU9ImZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtZmFtaWx5OidBcmlhbCBCbGFjayc7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonQXJpYWwgQmxhY2ssIEJvbGQnO2ZpbGw6I2ZmZmZmZjtzdHJva2U6IzJlMzQzNiIKICAgICAgICAgICAgIGlkPSJwYXRoMzA0OSIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2NjY2NjYyIgLz4KICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICBkPSJtIDUyNi4zNzEwNSwxNi45MDY5NTIgaCA1LjkwMTY5IHYgMy43ODQzMiBoIC00LjcyMTM1IHYgLTMuNzg0MzIiCiAgICAgICAgICAgICBzdHlsZT0iZm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpib2xkO2ZvbnQtc3RyZXRjaDpub3JtYWw7Zm9udC1mYW1pbHk6J0FyaWFsIEJsYWNrJzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidBcmlhbCBCbGFjaywgQm9sZCc7ZmlsbDojZmZmZmZmO3N0cm9rZTojMmUzNDM2IgogICAgICAgICAgICAgaWQ9InBhdGgzMDUxIgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2MiIC8+CiAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgZD0ibSA1NDQuNTY0ODMsMTIuMTQ5MDcgYyAtMTBlLTYsLTIuMDUyMTcxIC0wLjE5NDIzLC0zLjQ5NjAyNzYgLTAuNTgyNjcsLTQuMzMxNTcwMiAtMC4zODExMywtMC44NDI4NDY3IC0xLjAyNjEsLTEuMjY0Mjc2MyAtMS45MzQ5MiwtMS4yNjQyOTAxIC0wLjkwODgzLDEuMzhlLTUgLTEuNTU3NDYsMC40MjE0NDM0IC0xLjk0NTksMS4yNjQyOTAxIC0wLjM4ODQ2LDAuODM1NTQyNiAtMC41ODI2OCwyLjI3OTM5OTIgLTAuNTgyNjgsNC4zMzE1NzAyIDAsMi4wNzQxNzUgMC4xOTQyMiwzLjUzNjM1MyAwLjU4MjY4LDQuMzg2NTM3IDAuMzg4NDQsMC44NTAxOTIgMS4wMzcwNywxLjI3NTI4NyAxLjk0NTksMS4yNzUyODQgMC45MDE0OSwzZS02IDEuNTQ2NDYsLTAuNDI1MDkyIDEuOTM0OTIsLTEuMjc1Mjg0IDAuMzg4NDQsLTAuODUwMTg0IDAuNTgyNjYsLTIuMzEyMzYyIDAuNTgyNjcsLTQuMzg2NTM3IG0gNC4yMzI2MiwwLjAzMjk4IGMgLTEwZS02LDIuNzE5MTQ1IC0wLjU4NjM1LDQuODE4OTY0IC0xLjc1OTAxLDYuMjk5NDYzIC0xLjE3MjY5LDEuNDczMTczIC0yLjgzNjQyLDIuMjA5NzU5IC00Ljk5MTIsMi4yMDk3NTkgLTIuMTYyMTIsMCAtMy44Mjk1MiwtMC43MzY1ODYgLTUuMDAyMTksLTIuMjA5NzU5IC0xLjE3MjY3LC0xLjQ4MDQ5OSAtMS43NTkwMSwtMy41ODAzMTggLTEuNzU5MDEsLTYuMjk5NDYzIDAsLTIuNzI2NDYxMSAwLjU4NjM0LC00LjgyNjI3OTkgMS43NTkwMSwtNi4yOTk0NjU4IDEuMTcyNjcsLTEuNDgwNDg2MSAyLjg0MDA3LC0yLjIyMDczNjQgNS4wMDIxOSwtMi4yMjA3NTMxIDIuMTU0NzgsMS42N2UtNSAzLjgxODUxLDAuNzQwMjY3IDQuOTkxMiwyLjIyMDc1MzEgMS4xNzI2NiwxLjQ3MzE4NTkgMS43NTksMy41NzMwMDQ3IDEuNzU5MDEsNi4yOTk0NjU4IgogICAgICAgICAgICAgc3R5bGU9ImZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtZmFtaWx5OidBcmlhbCBCbGFjayc7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonQXJpYWwgQmxhY2ssIEJvbGQnO2ZpbGw6I2ZmZmZmZjtzdHJva2U6IzJlMzQzNiIKICAgICAgICAgICAgIGlkPSJwYXRoMzA1MyIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICAgICAgICA8cGF0aAogICAgICAgICAgICAgZD0ibSA1NjIuNzk3NTksMTIuMTQ5MDcgYyAtMTBlLTYsLTIuMDUyMTcxIC0wLjE5NDIzLC0zLjQ5NjAyNzggLTAuNTgyNjcsLTQuMzMxNTcwNCAtMC4zODExMywtMC44NDI4NDY3IC0xLjAyNjEsLTEuMjY0Mjc2MyAtMS45MzQ5MiwtMS4yNjQyOTAxIC0wLjkwODgzLDEuMzhlLTUgLTEuNTU3NDYsMC40MjE0NDM0IC0xLjk0NTksMS4yNjQyOTAxIC0wLjM4ODQ2LDAuODM1NTQyNiAtMC41ODI2OCwyLjI3OTM5OTQgLTAuNTgyNjgsNC4zMzE1NzA0IDAsMi4wNzQxNzUgMC4xOTQyMiwzLjUzNjM1MyAwLjU4MjY4LDQuMzg2NTM3IDAuMzg4NDQsMC44NTAxOTIgMS4wMzcwNywxLjI3NTI4NyAxLjk0NTksMS4yNzUyODQgMC45MDE0OSwzZS02IDEuNTQ2NDYsLTAuNDI1MDkyIDEuOTM0OTIsLTEuMjc1Mjg0IDAuMzg4NDQsLTAuODUwMTg0IDAuNTgyNjYsLTIuMzEyMzYyIDAuNTgyNjcsLTQuMzg2NTM3IG0gNC4yMzI2MiwwLjAzMjk4IGMgLTEwZS02LDIuNzE5MTQ1IC0wLjU4NjM1LDQuODE4OTY0IC0xLjc1OTAxLDYuMjk5NDYzIC0xLjE3MjY4LDEuNDczMTczIC0yLjgzNjQyLDIuMjA5NzU5IC00Ljk5MTIsMi4yMDk3NTkgLTIuMTYyMTIsMCAtMy44Mjk1MiwtMC43MzY1ODYgLTUuMDAyMTksLTIuMjA5NzU5IC0xLjE3MjY3LC0xLjQ4MDQ5OSAtMS43NTkwMSwtMy41ODAzMTggLTEuNzU5MDEsLTYuMjk5NDYzIDAsLTIuNzI2NDYxIDAuNTg2MzQsLTQuODI2MjgwMSAxLjc1OTAxLC02LjI5OTQ2NiAxLjE3MjY3LC0xLjQ4MDQ4NjEgMi44NDAwNywtMi4yMjA3MzY0IDUuMDAyMTksLTIuMjIwNzUzMSAyLjE1NDc4LDEuNjdlLTUgMy44MTg1MiwwLjc0MDI2NyA0Ljk5MTIsMi4yMjA3NTMxIDEuMTcyNjYsMS40NzMxODU5IDEuNzU5LDMuNTczMDA1IDEuNzU5MDEsNi4yOTk0NjYiCiAgICAgICAgICAgICBzdHlsZT0iZm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpib2xkO2ZvbnQtc3RyZXRjaDpub3JtYWw7Zm9udC1mYW1pbHk6J0FyaWFsIEJsYWNrJzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidBcmlhbCBCbGFjaywgQm9sZCc7ZmlsbDojZmZmZmZmO3N0cm9rZTojMmUzNDM2IgogICAgICAgICAgICAgaWQ9InBhdGgzMDU1IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgICAgICA8L2c+CiAgICAgICAgPHJlY3QKICAgICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMmUzNDM2O3N0cm9rZS13aWR0aDoyLjExMzQ3MzY1O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgICAgaWQ9InJlY3QzMTUxIgogICAgICAgICAgIHdpZHRoPSI0LjIyNjk0NzMiCiAgICAgICAgICAgaGVpZ2h0PSIyMy4yNDgyMDUiCiAgICAgICAgICAgeD0iNDU1LjM5OTkiCiAgICAgICAgICAgeT0iMzUuNzkyMjQ0IgogICAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1MS4wODkwOTYiCiAgICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjUxLjA4OTA5NiIgLz4KICAgICAgICA8cGF0aAogICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhZTIzNDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzJlMjkwMDtzdHJva2Utd2lkdGg6Mi4xMTM0NzM2NTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgICAgIGlkPSJwYXRoNDI1MC03MS0yLTAiCiAgICAgICAgICAgZD0ibSA0NjIuMzQzNzQsNTQuOTA0NDI0IGEgNi4zNTg4NjE3LDYuMzU5MTUxNyA4OS45Nzk1NzIgMSAwIC05LjY2MDEyLDguMjcyMzA4IDYuMzU4ODYxNyw2LjM1OTE1MTcgODkuOTc5NTcyIDEgMCA5LjY2MDEyLC04LjI3MjMwOCB6IgogICAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1MS4wODkwOTYiCiAgICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjUxLjA4OTA5NiIgLz4KICAgICAgICA8cmVjdAogICAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMyZTM0MzY7c3Ryb2tlLXdpZHRoOjIuMTEzNDczNjU7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgICBpZD0icmVjdDMxNTEtMiIKICAgICAgICAgICB3aWR0aD0iNC4yMjY5NDczIgogICAgICAgICAgIGhlaWdodD0iMjMuMjQ4MjA1IgogICAgICAgICAgIHg9IjUwNC4wMDk4IgogICAgICAgICAgIHk9IjM1Ljc5MjI0NCIKICAgICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMDg5MDk2IgogICAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4wODkwOTYiIC8+CiAgICAgICAgPHJlY3QKICAgICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMmUzNDM2O3N0cm9rZS13aWR0aDoyLjExMzQ3MzY1O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgICAgaWQ9InJlY3QzMTUxLTItOSIKICAgICAgICAgICB3aWR0aD0iNTAuNzIzNDE5IgogICAgICAgICAgIGhlaWdodD0iNC4yMjY5NDgzIgogICAgICAgICAgIHg9IjQ1Ni40NTY2IgogICAgICAgICAgIHk9IjMxLjU2NTI5NCIKICAgICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMDg5MDk2IgogICAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4wODkwOTYiIC8+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICAgIHN0eWxlPSJmaWxsOiNlZjI5Mjk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMyZTI5MDA7c3Ryb2tlLXdpZHRoOjIuMTEzNDczNjU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgICBpZD0icGF0aDQyNTAtNzEtMiIKICAgICAgICAgICBkPSJtIDUwMS4yOTMzMyw1NC45MDQyOTkgYSA2LjM1OTE1MTcsNi4zNTg4NjE3IDAuMDIwNDI4NDYgMSAxIDkuNjYwMTIsOC4yNzIzMDYgNi4zNTkxNTE3LDYuMzU4ODYxNyAwLjAyMDQyODQ2IDEgMSAtOS42NjAxMiwtOC4yNzIzMDYgeiIKICAgICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMDg5MDk2IgogICAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4wODkwOTYiIC8+CiAgICAgICAgPGcKICAgICAgICAgICBpZD0iZzM4MDUiCiAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC43MTQxMjU0NiwwLDAsMC43MTQxMjU0NiwxMjEuODM3MDcsOC45NjAxNjg1KSIKICAgICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50NDA5My04KTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6Mi45NTk1MjcwMiIKICAgICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMDg5MDk2IgogICAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4wODkwOTYiPgogICAgICAgICAgPGNpcmNsZQogICAgICAgICAgICAgcj0iNDguNTcxNDMiCiAgICAgICAgICAgICBjeT0iNjU1LjIxOTMiCiAgICAgICAgICAgICBjeD0iMTk3LjE0Mjg1IgogICAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoLTAuMDkyNjc4NjcsLTAuMDc5MTI0MzQsMC4wNzkxMjQzNCwtMC4wOTI2Nzg2Nyw0MzYuNDc5NDYsMTEwLjkzNzQ2KSIKICAgICAgICAgICAgIGlkPSJwYXRoMjkwMSIKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOnVybCgjbGluZWFyR3JhZGllbnQ1MjcwKTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MjQuMjg2MTc0Nzc7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgICAgICAgIDxjaXJjbGUKICAgICAgICAgICAgIHI9IjQ4LjU3MTQzIgogICAgICAgICAgICAgY3k9IjY1NS4yMTkzIgogICAgICAgICAgICAgY3g9IjE5Ny4xNDI4NSIKICAgICAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KC0wLjA5MjY3ODY3LC0wLjA3OTEyNDMzLDAuMDc5MTI0MzMsLTAuMDkyNjc4NjcsNTA0LjU0ODU5LDExMC45Mzc0NSkiCiAgICAgICAgICAgICBpZD0icGF0aDI5MDEtOSIKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOnVybCgjbGluZWFyR3JhZGllbnQzODE5LTEpO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyNC4yODYxNzQ3NztzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgICAgIDwvZz4KICAgICAgICA8ZwogICAgICAgICAgIGlkPSJnMTAwMiIKICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgtMSwwLDAsMSw5MTUuMDI4MDcsNy4zODUzMDI4ZS03KSIKICAgICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMDg5MDk2IgogICAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4wODkwOTYiPgogICAgICAgICAgPHBhdGgKICAgICAgICAgICAgIGQ9Im0gNDYwLjc2MDUxLDU2LjM3NDk4MSBhIDQuMDE0OTE1LDQuMDE0OTE1MiAwIDEgMCAtNi4wOTg5OSw1LjIyMzA2NyA0LjAxNDkxNSw0LjAxNDkxNTIgMCAwIDAgNi4wOTg5OSwtNS4yMjMwNjcgeiIKICAgICAgICAgICAgIGlkPSJwYXRoNDI1MC03LTMtMi05IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDM4MDEtMS0zLTEpO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojOGFlMjM0O3N0cm9rZS13aWR0aDoyLjE4MDg4NzQ2O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogICAgICAgIDwvZz4KICAgICAgICA8ZwogICAgICAgICAgIGlkPSJnMTA0MCIKICAgICAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMy4xMTgwMTUsMC4zMjYzODYxNCkiCiAgICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjUxLjA4OTA5NiIKICAgICAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTEuMDg5MDk2Ij4KICAgICAgICAgIDxwYXRoCiAgICAgICAgICAgICBkPSJtIDQ3OS45NDQyNyw1Ni4xMDMyNCBhIDQuMDIzMTQ1Myw0LjAyMzE0NTYgMCAxIDEgNi4xMTE0OCw1LjIzMzc3NCA0LjAyMzE0NTMsNC4wMjMxNDU2IDAgMCAxIC02LjExMTQ4LC01LjIzMzc3NCB6IgogICAgICAgICAgICAgaWQ9InBhdGg0MjUwLTctMy0yLTIiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50MzgwMS0xLTMtMyk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiNlZjI5Mjk7c3Ryb2tlLXdpZHRoOjIuMTY0MDkzOTc7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICAgICAgPC9nPgogICAgICA8L2c+CiAgICA8L2c+CiAgPC9nPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTQwMzgiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgICAgPGNjOmxpY2Vuc2UKICAgICAgICAgICByZGY6cmVzb3VyY2U9IiIgLz4KICAgICAgICA8ZGM6ZGF0ZT5Nb24gT2N0IDEwIDEzOjQ0OjUyIDIwMTEgKzAwMDA8L2RjOmRhdGU+CiAgICAgICAgPGRjOmNyZWF0b3I+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5bd21heWVyXTwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6Y3JlYXRvcj4KICAgICAgICA8ZGM6cmlnaHRzPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+RnJlZUNBRCBMR1BMMis8L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOnJpZ2h0cz4KICAgICAgICA8ZGM6cHVibGlzaGVyPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+RnJlZUNBRDwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6cHVibGlzaGVyPgogICAgICAgIDxkYzppZGVudGlmaWVyPkZyZWVDQUQvc3JjL01vZC9EcmFmdC9SZXNvdXJjZXMvaWNvbnMvRHJhZnRfRGltZW5zaW9uLnN2ZzwvZGM6aWRlbnRpZmllcj4KICAgICAgICA8ZGM6cmVsYXRpb24+aHR0cDovL3d3dy5mcmVlY2Fkd2ViLm9yZy93aWtpL2luZGV4LnBocD90aXRsZT1BcnR3b3JrPC9kYzpyZWxhdGlvbj4KICAgICAgICA8ZGM6Y29udHJpYnV0b3I+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5bYWdyeXNvbl0gQWxleGFuZGVyIEdyeXNvbjwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6Y29udHJpYnV0b3I+CiAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICA8cmRmOkJhZz4KICAgICAgICAgICAgPHJkZjpsaT5saW5lPC9yZGY6bGk+CiAgICAgICAgICAgIDxyZGY6bGk+ZG90PC9yZGY6bGk+CiAgICAgICAgICAgIDxyZGY6bGk+bnVtYmVyPC9yZGY6bGk+CiAgICAgICAgICA8L3JkZjpCYWc+CiAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgIDxkYzpkZXNjcmlwdGlvbj5BIG51bWJlciBmbG9hdGluZyBhYm92ZSBhIGxpbmUgY29ycmVzcG9uZGluZyB0byB0aGUgdXBwZXIgdGhyZWUgc2lkZXMgb2YgYSByZWN0YW5nbGUgd2l0aCBhIGRvdCBhdCBlYWNmIGVuZHBvaW50IGFuZCBjb3JuZXI8L2RjOmRlc2NyaXB0aW9uPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KPC9zdmc+Cg==
"""
DimensionP3_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHdpZHRoPSI2NCIKICAgaGVpZ2h0PSI2NCIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnNTEiCiAgIHNvZGlwb2RpOmRvY25hbWU9IkRpbVAzLnN2ZyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi4wIHIxNTI5OSI+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxIgogICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiCiAgICAgZ3JpZHRvbGVyYW5jZT0iMTAiCiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEwIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxNTM2IgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjgwMSIKICAgICBpZD0ibmFtZWR2aWV3NTMiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjMuNjg3NSIKICAgICBpbmtzY2FwZTpjeD0iLTE0LjIzNzI4OCIKICAgICBpbmtzY2FwZTpjeT0iMzIiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii04IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOCIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZzUxIiAvPgogIDxkZWZzCiAgICAgaWQ9ImRlZnMxOSI+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQ2NDAiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZDQwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDQ2MzYiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNkNDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDYzOCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIHkyPSI2OC44Mjk0OTYiCiAgICAgICB4Mj0iMTkzLjQ2ODM3IgogICAgICAgeTE9IjgxLjk1NDAyOSIKICAgICAgIHgxPSIxOTIuODIwMzgiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MDkzLTgiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0MDc3LTkiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ic2NhbGUoMi4zNjc2MjM0LDAuNDIyMzY0NDcpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQwNzctOSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0b3AtY29sb3I9IiM4ODhhODUiCiAgICAgICAgIGlkPSJzdG9wNDA3OS02IgogICAgICAgICBvZmZzZXQ9IjAiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0b3AtY29sb3I9IiMyZTM0MzYiCiAgICAgICAgIGlkPSJzdG9wNDA4MS0wIgogICAgICAgICBvZmZzZXQ9IjEiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICB5Mj0iNjQwLjI5ODU5IgogICAgICAgeDI9IjE0NC40ODc3IgogICAgICAgeTE9IjY3OS45OTU2OCIKICAgICAgIHgxPSIyMzguMjUzOTkiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODE5LTEiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0MDc3LTAtMiIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjA4MjM1MTM3LDAsMCwwLjA4MjM1MTM3LC03OC4xOTIwMDksLTQxLjgyMzQ3MikiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQwNzctMC0yIj4KICAgICAgPHN0b3AKICAgICAgICAgc3RvcC1jb2xvcj0iIzg4OGE4NSIKICAgICAgICAgaWQ9InN0b3A0MDc5LTktNyIKICAgICAgICAgb2Zmc2V0PSIwIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdG9wLWNvbG9yPSIjMmUzNDM2IgogICAgICAgICBpZD0ic3RvcDQwODEtNC03IgogICAgICAgICBvZmZzZXQ9IjEiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODM2LTAtNi01Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3RvcC1jb2xvcj0iIzRlOWEwNiIKICAgICAgICAgaWQ9InN0b3AzODM4LTItNy00IgogICAgICAgICBvZmZzZXQ9IjAiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0b3AtY29sb3I9IiM4YWUyMzQiCiAgICAgICAgIGlkPSJzdG9wMzg0MC01LTUtMSIKICAgICAgICAgb2Zmc2V0PSIxIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgeTI9IjU0LjI5OTY3OSIKICAgICAgIHgyPSI1MDMuOTcxOTUiCiAgICAgICB5MT0iNjMuOTE0ODkzIgogICAgICAgeDE9IjUwNi45MjkwNSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4MDEtMS0zLTMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzODM2LTAtNi02IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09InNjYWxlKDEuMDAwMzIzNSwwLjk5OTY3NjYzKSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODM2LTAtNi02Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3RvcC1jb2xvcj0iI2E0MDAwMCIKICAgICAgICAgaWQ9InN0b3AzODM4LTItNy03IgogICAgICAgICBvZmZzZXQ9IjAiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0b3AtY29sb3I9IiNlZjI5MjkiCiAgICAgICAgIGlkPSJzdG9wMzg0MC01LTUtNSIKICAgICAgICAgb2Zmc2V0PSIxIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgeTI9IjU0LjIzNzkwOSIKICAgICAgIHgyPSI0NTkuNTQ3NyIKICAgICAgIHkxPSI2My44NTIxNDUiCiAgICAgICB4MT0iNDU2LjU5MDkxIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzgwMS0xLTMtMSIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDM4MzYtMC02LTUiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ic2NhbGUoMS4wMDAzMjA5LDAuOTk5Njc5MjUpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIHkyPSI2NDAuMjk4NTkiCiAgICAgICB4Mj0iMTQ0LjQ4NzciCiAgICAgICB5MT0iNjc5Ljk5NTY4IgogICAgICAgeDE9IjIzOC4yNTM5OSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDUyNzAiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0MDc3LTAtMiIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjA4MjM1MTM3LDAsMCwwLjA4MjM1MTM3LC00My4yMDc2MDcsLTcxLjY5MTM4MykiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIHkyPSI1NC4yMzc5MDciCiAgICAgICB4Mj0iNDU5LjU0NzciCiAgICAgICB5MT0iNjMuODUyMTQ2IgogICAgICAgeDE9IjQ1Ni41OTA5MSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4MDEtMS0zLTEtMSIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDM4MzYtMC02LTUiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ic2NhbGUoMS4wMDAzMjA5LDAuOTk5Njc5MjUpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQ2NDAiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0NjQyIgogICAgICAgeDE9Ii0yNC45MTM0NDgiCiAgICAgICB5MT0iLTE2Ljg2MTQ0NCIKICAgICAgIHgyPSItMy43NjY4OTYiCiAgICAgICB5Mj0iLTE2Ljg3Mzg5MiIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NjQwIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDY0Mi01IgogICAgICAgeDE9Ii0yNC45MTM0NDgiCiAgICAgICB5MT0iLTE2Ljg2MTQ0NCIKICAgICAgIHgyPSItMy43NjY4OTYiCiAgICAgICB5Mj0iLTE2Ljg3Mzg5MiIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgtMzQuOTg0NDAzLDI5Ljg2Nzg5NSkiIC8+CiAgPC9kZWZzPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTQwMzgiPmltYWdlL3N2Zyt4bWxNb24gT2N0IDEwIDEzOjQ0OjUyIDIwMTEgKzAwMDBbd21heWVyXUZyZWVDQUQgTEdQTDIrRnJlZUNBREZyZWVDQUQvc3JjL01vZC9EcmFmdC9SZXNvdXJjZXMvaWNvbnMvRHJhZnRfRGltZW5zaW9uLnN2Z2h0dHA6Ly93d3cuZnJlZWNhZHdlYi5vcmcvd2lraS9pbmRleC5waHA/dGl0bGU9QXJ0d29ya1thZ3J5c29uXSBBbGV4YW5kZXIgR3J5c29ubGluZWRvdG51bWJlckEgbnVtYmVyIGZsb2F0aW5nIGFib3ZlIGEgbGluZSBjb3JyZXNwb25kaW5nIHRvIHRoZSB1cHBlciB0aHJlZSBzaWRlcyBvZiBhIHJlY3RhbmdsZSB3aXRoIGEgZG90IGF0IGVhY2YgZW5kcG9pbnQgYW5kIGNvcm5lcjxyZGY6UkRGPgogIDxjYzpXb3JrCiAgICAgcmRmOmFib3V0PSIiPgogICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICA8ZGM6dHlwZQogICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgIDxkYzp0aXRsZSAvPgogIDwvY2M6V29yaz4KPC9yZGY6UkRGPgo8L21ldGFkYXRhPgogIDxnCiAgICAgaWQ9ImcyNSI+CiAgICA8dGl0bGUKICAgICAgIGlkPSJ0aXRsZTIyIj5iYWNrZ3JvdW5kPC90aXRsZT4KICAgIDxyZWN0CiAgICAgICBmaWxsPSJub25lIgogICAgICAgaWQ9ImNhbnZhc19iYWNrZ3JvdW5kIgogICAgICAgaGVpZ2h0PSI0MDIiCiAgICAgICB3aWR0aD0iNTgyIgogICAgICAgeT0iLTEiCiAgICAgICB4PSItMSIgLz4KICA8L2c+CiAgPGcKICAgICBmb250LXN0eWxlPSJub3JtYWwiCiAgICAgZm9udC13ZWlnaHQ9Im5vcm1hbCIKICAgICBmb250LXNpemU9IjIyLjUxNTM1OHB4IgogICAgIGlkPSJ0ZXh0MzczNSIKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjg0NzIxNTg3LDAsMCwxLjA1Njk5MzIsLTQyMy45NTA2LC0wLjg3MDUzMzYpIgogICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zaXplOjIyLjUxNTM1Nzk3cHg7Zm9udC1mYW1pbHk6J0JpdHN0cmVhbSBWZXJhIFNhbnMnO2ZpbGw6I2ZmZmZmZjtzdHJva2U6IzJlMzQzNjtzdHJva2Utd2lkdGg6Mi4xMTM0NzM4OSIKICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMDg5MSIKICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTEuMDg5MSI+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzMDQ5IgogICAgICAgZD0ibSA1MTIuMjA3MDMsMTYuOTA2OTUgaCAzLjU0MTAyIHYgLTkuNDYwOCBoIC0yLjM2MDY2IFYgNS41NTM5OSBsIDIuMzYwNjYsLTEuODkyMTYgaCA0LjcyMTMxIHYgMTMuMjQ1MTIgaCAyLjM2MDcyIHYgMy43ODQzMjEgaCAtOS40NDI2OSBWIDE2LjkwNjk1IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiMyZTM0MzYiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzMDUxIgogICAgICAgZD0ibSA1MjYuMzcxMDMsMTYuOTA2OTUgaCA1LjkwMTY3IHYgMy43ODQzMjEgaCAtNC43MjEzMSBWIDE2LjkwNjk1IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiMyZTM0MzYiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzMDUzIgogICAgICAgZD0ibSA1NDQuNTY0ODIsMTIuMTQ5MDcgYyAwLC0yLjA1MjE3IC0wLjE5NDIxLC0zLjQ5NjAzIC0wLjU4MjY0LC00LjMzMTU3IC0wLjM4MTE3LC0wLjg0Mjg1IC0xLjAyNjEzLC0xLjI2NDI4IC0xLjkzNDk0LC0xLjI2NDI5IC0wLjkwODgxLDEwZS02IC0xLjU1NzQ5LDAuNDIxNDQgLTEuOTQ1OTIsMS4yNjQyOSAtMC4zODg0MywwLjgzNTU0IC0wLjU4MjY0LDIuMjc5NCAtMC41ODI2NCw0LjMzMTU3IDAsMi4wNzQxNyAwLjE5NDIxLDMuNTM2MzUgMC41ODI2NCw0LjM4NjU0IDAuMzg4NDMsMC44NTAxODkgMS4wMzcxMSwxLjI3NTI4IDEuOTQ1OTIsMS4yNzUyOCAwLjkwMTQ5LDAgMS41NDY0NSwtMC40MjUwOTEgMS45MzQ5NCwtMS4yNzUyOCAwLjM4ODQzLC0wLjg1MDE5IDAuNTgyNjQsLTIuMzEyMzcgMC41ODI2NCwtNC4zODY1NCBtIDQuMjMyNiwwLjAzMjk4IGMgMCwyLjcxOTE0IC0wLjU4NjM2LDQuODE4OTYxIC0xLjc1ODk3LDYuMjk5NDYgLTEuMTcyNzMsMS40NzMxODEgLTIuODM2NDIsMi4yMDk3NjEgLTQuOTkxMjEsMi4yMDk3NjEgLTIuMTYyMTEsMCAtMy44Mjk1MywtMC43MzY1OCAtNS4wMDIyLC0yLjIwOTc2MSAtMS4xNzI2NiwtMS40ODA0OTkgLTEuNzU5MDMsLTMuNTgwMzIgLTEuNzU5MDMsLTYuMjk5NDYgMCwtMi43MjY0NiAwLjU4NjM3LC00LjgyNjI4IDEuNzU5MDMsLTYuMjk5NDcgMS4xNzI2NywtMS40ODA0OCAyLjg0MDA5LC0yLjIyMDczIDUuMDAyMiwtMi4yMjA3NSAyLjE1NDc5LDJlLTUgMy44MTg0OCwwLjc0MDI3IDQuOTkxMjEsMi4yMjA3NSAxLjE3MjYxLDEuNDczMTkgMS43NTg5NywzLjU3MzAxIDEuNzU4OTcsNi4yOTk0NyIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO3N0cm9rZTojMmUzNDM2IiAvPgogICAgPHBhdGgKICAgICAgIGlkPSJwYXRoMzA1NSIKICAgICAgIGQ9Im0gNTYyLjc5NzYxLDEyLjE0OTA3IGMgMCwtMi4wNTIxNyAtMC4xOTQyMiwtMy40OTYwMyAtMC41ODI2NSwtNC4zMzE1NyAtMC4zODExNiwtMC44NDI4NSAtMS4wMjYxMiwtMS4yNjQyOCAtMS45MzQ5MywtMS4yNjQyOSAtMC45MDg4MiwxMGUtNiAtMS41NTc1LDAuNDIxNDQgLTEuOTQ1OTIsMS4yNjQyOSAtMC4zODg0MywwLjgzNTU0IC0wLjU4MjY1LDIuMjc5NCAtMC41ODI2NSw0LjMzMTU3IDAsMi4wNzQxNyAwLjE5NDIyLDMuNTM2MzUgMC41ODI2NSw0LjM4NjU0IDAuMzg4NDIsMC44NTAxODkgMS4wMzcxLDEuMjc1MjggMS45NDU5MiwxLjI3NTI4IDAuOTAxNDksMCAxLjU0NjQ1LC0wLjQyNTA5MSAxLjkzNDkzLC0xLjI3NTI4IDAuMzg4NDMsLTAuODUwMTkgMC41ODI2NSwtMi4zMTIzNyAwLjU4MjY1LC00LjM4NjU0IG0gNC4yMzI2LDAuMDMyOTggYyAwLDIuNzE5MTQgLTAuNTg2Myw0LjgxODk2MSAtMS43NTg5Nyw2LjI5OTQ2IC0xLjE3MjczLDEuNDczMTgxIC0yLjgzNjQzLDIuMjA5NzYxIC00Ljk5MTIxLDIuMjA5NzYxIC0yLjE2MjExLDAgLTMuODI5NTMsLTAuNzM2NTggLTUuMDAyMiwtMi4yMDk3NjEgLTEuMTcyNjcsLTEuNDgwNDk5IC0xLjc1OTAzLC0zLjU4MDMyIC0xLjc1OTAzLC02LjI5OTQ2IDAsLTIuNzI2NDYgMC41ODYzNiwtNC44MjYyOCAxLjc1OTAzLC02LjI5OTQ3IDEuMTcyNjcsLTEuNDgwNDggMi44NDAwOSwtMi4yMjA3MyA1LjAwMjIsLTIuMjIwNzUgMi4xNTQ3OCwyZS01IDMuODE4NDgsMC43NDAyNyA0Ljk5MTIxLDIuMjIwNzUgMS4xNzI2NywxLjQ3MzE5IDEuNzU4OTcsMy41NzMwMSAxLjc1ODk3LDYuMjk5NDciCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtzdHJva2U6IzJlMzQzNiIgLz4KICA8L2c+CiAgPHJlY3QKICAgICBzdHJva2UtbWl0ZXJsaW1pdD0iNCIKICAgICB5PSIzMy4wMDAwMDQiCiAgICAgeD0iNi45OTkyOTg2IgogICAgIGhlaWdodD0iMjEuOTk5OTk0IgogICAgIHdpZHRoPSIzLjk5OTk5OTUiCiAgICAgaWQ9InJlY3QzMTUxIgogICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiMyZTM0MzY7c3Ryb2tlLXdpZHRoOjIuMDAwMDAwMjQ7c3Ryb2tlLW1pdGVybGltaXQ6NCIKICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMDg5MSIKICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTEuMDg5MSIgLz4KICA8cGF0aAogICAgIHN0cm9rZS1taXRlcmxpbWl0PSI0IgogICAgIGQ9Ik0gMTMuNTcwMzI3LDUxLjA4NjAzNCBBIDYuMDE3NDU1Myw2LjAxNzcyOTggODkuOTc5NTY4IDEgMCA0LjQyODg1NDgsNTguOTE0MiA2LjAxNzQ1NTMsNi4wMTc3Mjk4IDg5Ljk3OTU2OCAxIDAgMTMuNTcwMzI3LDUxLjA4NjAzNCBaIgogICAgIGlkPSJwYXRoNDI1MC03MS0yLTAiCiAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICBzdHlsZT0iZmlsbDojOGFlMjM0O3N0cm9rZTojMmUyOTAwO3N0cm9rZS13aWR0aDoyLjAwMDAwMDI0O3N0cm9rZS1taXRlcmxpbWl0OjQiCiAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjUxLjA4OTEiCiAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjUxLjA4OTEiIC8+CiAgPHJlY3QKICAgICBzdHJva2UtbWl0ZXJsaW1pdD0iNCIKICAgICB5PSIzMy4wMDAwMDQiCiAgICAgeD0iNTIuOTk5Mjk4IgogICAgIGhlaWdodD0iMjEuOTk5OTk0IgogICAgIHdpZHRoPSIzLjk5OTk5OTUiCiAgICAgaWQ9InJlY3QzMTUxLTIiCiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtzdHJva2U6IzJlMzQzNjtzdHJva2Utd2lkdGg6Mi4wMDAwMDAyNDtzdHJva2UtbWl0ZXJsaW1pdDo0IgogICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1MS4wODkxIgogICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4wODkxIiAvPgogIDxyZWN0CiAgICAgc3Ryb2tlLW1pdGVybGltaXQ9IjQiCiAgICAgeT0iMjkiCiAgICAgeD0iNy45OTkyNjUyIgogICAgIGhlaWdodD0iNC4wMDAwMDA1IgogICAgIHdpZHRoPSI0OC4wMDAwNSIKICAgICBpZD0icmVjdDMxNTEtMi05IgogICAgIHN0eWxlPSJmaWxsOiNmZjAwMDA7c3Ryb2tlOiMyZTM0MzY7c3Ryb2tlLXdpZHRoOjIuMDAwMDAwMjQ7c3Ryb2tlLW1pdGVybGltaXQ6NCIKICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMDg5MSIKICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTEuMDg5MSIgLz4KICA8Y2lyY2xlCiAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDQ2NDIpO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoxLjk5OTk5OTg4O3N0cm9rZS1taXRlcmxpbWl0OjQ7ZmlsbC1vcGFjaXR5OjEiCiAgICAgcj0iMy45OTk5MjM5IgogICAgIGN5PSItMTcuNzMzMTczIgogICAgIGN4PSItMjYuOTcyNjIyIgogICAgIHRyYW5zZm9ybT0icm90YXRlKC0xMzkuNTEwOTkpIgogICAgIGlkPSJwYXRoMjkwMSIKICAgICBzdHJva2UtbWl0ZXJsaW1pdD0iNCIKICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMDg5MSIKICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTEuMDg5MSIgLz4KICA8ZwogICAgIHRyYW5zZm9ybT0ibWF0cml4KC0wLjk0NjMwOTQsMCwwLDAuOTQ2MzA5NCw0NDEuOTQ5NzUsLTAuODcwNTMzNikiCiAgICAgaWQ9ImcxMDAyIgogICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1MS4wODkxIgogICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4wODkxIj4KICAgIDxwYXRoCiAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD0iNCIKICAgICAgIGlkPSJwYXRoNDI1MC03LTMtMi05IgogICAgICAgZD0ibSA0NjAuNzYwNSw1Ni4zNzQ5ODEgYSA0LjAxNDkxNzIsNC4wMTQ5MTcyIDAgMSAwIC02LjA5OSw1LjIyMzA2OCA0LjAxNDkxNzIsNC4wMTQ5MTcyIDAgMCAwIDYuMDk5LC01LjIyMzA2OCB6IgogICAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDM4MDEtMS0zLTEpO3N0cm9rZTojOGFlMjM0O3N0cm9rZS13aWR0aDoyLjE4MDg4Njk4O3N0cm9rZS1taXRlcmxpbWl0OjQiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogIDwvZz4KICA8cGF0aAogICAgIHN0cm9rZS1taXRlcmxpbWl0PSI0IgogICAgIGQ9Im0gNTkuNTcwMzYsNTEuMDg1NTI2IGEgNi4wMTc0NTU1LDYuMDE3NzMgODkuOTc5NTY4IDEgMCAtOS4xNDE0NzIsNy44MjgxNjcgNi4wMTc0NTU1LDYuMDE3NzMgODkuOTc5NTY4IDEgMCA5LjE0MTQ3MiwtNy44MjgxNjcgeiIKICAgICBpZD0icGF0aDQyNTAtNzEtMi0wLTkiCiAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICBzdHlsZT0iZmlsbDojOGFlMjM0O3N0cm9rZTojMmUyOTAwO3N0cm9rZS13aWR0aDoyLjAwMDAwMDI0O3N0cm9rZS1taXRlcmxpbWl0OjQiCiAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjUxLjA4OTEiCiAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjUxLjA4OTEiIC8+CiAgPGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgtMC45NDYzMDk0LDAsMCwwLjk0NjMwOTQsNDg3Ljk0OTc5LC0wLjg3MTA0MTMyKSIKICAgICBpZD0iZzEwMDItNCIKICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMDg5MSIKICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTEuMDg5MSI+CiAgICA8cGF0aAogICAgICAgc3Ryb2tlLW1pdGVybGltaXQ9IjQiCiAgICAgICBpZD0icGF0aDQyNTAtNy0zLTItOS0xIgogICAgICAgZD0ibSA0NjAuNzYwNSw1Ni4zNzQ5ODEgYSA0LjAxNDkxNzIsNC4wMTQ5MTcyIDAgMSAwIC02LjA5OSw1LjIyMzA2OCA0LjAxNDkxNzIsNC4wMTQ5MTcyIDAgMCAwIDYuMDk5LC01LjIyMzA2OCB6IgogICAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDM4MDEtMS0zLTEtMSk7c3Ryb2tlOiM4YWUyMzQ7c3Ryb2tlLXdpZHRoOjIuMTgwODg2OTg7c3Ryb2tlLW1pdGVybGltaXQ6NCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgPC9nPgogIDxjaXJjbGUKICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50NDY0Mi01KTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MS45OTk5OTk4ODtzdHJva2UtbWl0ZXJsaW1pdDo0IgogICAgIHI9IjMuOTk5OTIzOSIKICAgICBjeT0iMTIuMTM0NzI1IgogICAgIGN4PSItNjEuOTU3MDI0IgogICAgIHRyYW5zZm9ybT0icm90YXRlKC0xMzkuNTEwOTkpIgogICAgIGlkPSJwYXRoMjkwMS03IgogICAgIHN0cm9rZS1taXRlcmxpbWl0PSI0IgogICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1MS4wODkxIgogICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4wODkxIiAvPgo8L3N2Zz4K
"""
AnnotationPlane_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjY0cHgiCiAgIGhlaWdodD0iNjRweCIKICAgaWQ9InN2ZzI5ODAiCiAgIHNvZGlwb2RpOnZlcnNpb249IjAuMzIiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuMSByMTUzNzEiCiAgIHNvZGlwb2RpOmRvY25hbWU9IkFublBsYW5lT3JhbmdlMi5zdmciCiAgIGlua3NjYXBlOm91dHB1dF9leHRlbnNpb249Im9yZy5pbmtzY2FwZS5vdXRwdXQuc3ZnLmlua3NjYXBlIgogICB2ZXJzaW9uPSIxLjEiPgogIDxkZWZzCiAgICAgaWQ9ImRlZnMyOTgyIj4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDY0NyI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmE2MmM7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNDY0MyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmYTYyYztzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A0NjQ1IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDAyOCI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyMDRhODc7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A0MDMwIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojNzI5ZmNmO3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDAzMiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM3OTQiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDM3OTYiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzc5OCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4NjQiPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDM4NjYiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzcxYjJmODtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMzg2OCIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAyNzk1O3N0b3Atb3BhY2l0eToxOyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMzIgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfej0iNjQgOiAzMiA6IDEiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMzIgOiAyMS4zMzMzMzMgOiAxIgogICAgICAgaWQ9InBlcnNwZWN0aXZlMjk4OCIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgwLC00KSIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDM3NjciCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzNzczIgogICAgICAgeDE9IjIyLjExNjUxNiIKICAgICAgIHkxPSI1NS43MTc1MTgiCiAgICAgICB4Mj0iMTcuMzI4NTQ3IgogICAgICAgeTI9IjIxLjMxMTM0IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM3NjciPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMzQ2NWE0O3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wMzc2OSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzcyOWZjZjtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDM3NzEiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLTQpIgogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50Mzc3NyIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM3ODMiCiAgICAgICB4MT0iNTMuODk2NzYzIgogICAgICAgeTE9IjUxLjE3OTc4NyIKICAgICAgIHgyPSI0Ny41MDIyMzUiCiAgICAgICB5Mj0iMjEuODM3NDIiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mzc3NyI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyMDRhODc7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzNzc5IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMzQ2NWE0O3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzc4MSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDM3OTQiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQzODAwIgogICAgICAgY3g9IjEiCiAgICAgICBjeT0iNDUiCiAgICAgICBmeD0iMSIKICAgICAgIGZ5PSI0NSIKICAgICAgIHI9IjQxIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjkzMzQ4MjEzLC0yLjI5MDUyNzZlLTgsMCwwLjI4Njg3NTczLDAuMDY2NTE3NTEsMzIuMDkwNTkyKSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODM2LTAtNi05LTciPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojYTQwMDAwO3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wMzgzOC0yLTctMy04IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZWYyOTI5O3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzg0MC01LTUtMS02IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzgzNi0wLTYtOTItNCI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNhNDAwMDA7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzODM4LTItNy0wNi04IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZWYyOTI5O3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzg0MC01LTUtOC03IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzgzNi0wLTYtOTItNC02IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzgwMS0xLTMtMTQtMC0zIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICB4MT0iLTE4IgogICAgICAgeTE9IjE4IgogICAgICAgeDI9Ii0yMiIKICAgICAgIHkyPSI1IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjc2MzQyNDM5LDAsMCwwLjc1NzUwNDI1LC00LjU5NjM4OSwyLjc1MjU2MzcpIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODM2LTAtNi05Mi00LTYiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojYTQwMDAwO3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wMzgzOC0yLTctMDYtOC03IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZWYyOTI5O3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzg0MC01LTUtOC03LTUiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzODM2LTAtNi05Mi00LTYyIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzgwMS0xLTMtMTQtMC0zNSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgeDE9Ii0xOCIKICAgICAgIHkxPSIxOCIKICAgICAgIHgyPSItMjIiCiAgICAgICB5Mj0iNSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC43NjM0MjQzOSwwLDAsMC43NTc1MDQyNSwtNC41OTYzODksMi43NTI1NjM3KSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzgzNi0wLTYtOTItNC02MiI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNhNDAwMDA7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzODM4LTItNy0wNi04LTkiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNlZjI5Mjk7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AzODQwLTUtNS04LTctMSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDM4MzYtMC02LTkyLTQtMCIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4MDEtMS0zLTE0LTAtMzYiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHgxPSItMTgiCiAgICAgICB5MT0iMTgiCiAgICAgICB4Mj0iLTIyIgogICAgICAgeTI9IjUiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNzYzNDI0MzksMCwwLDAuNzU3NTA0MjUsLTQuNTk2Mzg5LDIuNzUyNTYzNykiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4MzYtMC02LTkyLTQtMCI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNhNDAwMDA7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzODM4LTItNy0wNi04LTYiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNlZjI5Mjk7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AzODQwLTUtNS04LTctMiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDM4MzYtMC02LTkyLTQtMiIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4MDEtMS0zLTE0LTAtOSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgeDE9Ii0xOCIKICAgICAgIHkxPSIxOCIKICAgICAgIHgyPSItMjIiCiAgICAgICB5Mj0iNSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC43NjM0MjQzOSwwLDAsMC43NTc1MDQyNSwtNC41OTYzODksMi43NTI1NjM3KSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzgzNi0wLTYtOTItNC0yIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2E0MDAwMDtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDM4MzgtMi03LTA2LTgtMCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2VmMjkyOTtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDM4NDAtNS01LTgtNy0yMyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQwMjgiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MDM0IgogICAgICAgeDE9IjM4IgogICAgICAgeTE9IjU3IgogICAgICAgeDI9IjI2IgogICAgICAgeTI9IjI2IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQ2NDciCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0NjQ5IgogICAgICAgeDE9IjI2IgogICAgICAgeTE9IjI5IgogICAgICAgeDI9IjUzIgogICAgICAgeTI9IjQ0IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgPC9kZWZzPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIxMi44NDI1ODIiCiAgICAgaW5rc2NhcGU6Y3g9IjQwLjkxNTU5NSIKICAgICBpbmtzY2FwZTpjeT0iMjUuOTY5NDQzIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Z3JpZC1iYm94PSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjU2MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzYxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiCiAgICAgaW5rc2NhcGU6c25hcC1iYm94PSJmYWxzZSIKICAgICBpbmtzY2FwZTpzbmFwLW5vZGVzPSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiPgogICAgPGlua3NjYXBlOmdyaWQKICAgICAgIHR5cGU9Inh5Z3JpZCIKICAgICAgIGlkPSJncmlkMjk5MSIKICAgICAgIGVtcHNwYWNpbmc9IjIiCiAgICAgICB2aXNpYmxlPSJ0cnVlIgogICAgICAgZW5hYmxlZD0idHJ1ZSIKICAgICAgIHNuYXB2aXNpYmxlZ3JpZGxpbmVzb25seT0idHJ1ZSIgLz4KICA8L3NvZGlwb2RpOm5hbWVkdmlldz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGEyOTg1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICAgIDxkYzpjcmVhdG9yPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+W2ptYXVzdHBjXTwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6Y3JlYXRvcj4KICAgICAgICA8ZGM6dGl0bGU+VHJlZV9QYXJ0X1BsYW5lX1BhcmFtZXRyaWM8L2RjOnRpdGxlPgogICAgICAgIDxkYzpkYXRlPjIwMTMtMDMtMTM8L2RjOmRhdGU+CiAgICAgICAgPGRjOnJlbGF0aW9uPmh0dHA6Ly93d3cuZnJlZWNhZHdlYi5vcmcvd2lraS9pbmRleC5waHA/dGl0bGU9QXJ0d29yazwvZGM6cmVsYXRpb24+CiAgICAgICAgPGRjOnB1Ymxpc2hlcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPkZyZWVDQUQ8L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOnB1Ymxpc2hlcj4KICAgICAgICA8ZGM6aWRlbnRpZmllcj5GcmVlQ0FEL3NyYy9Nb2QvUGFydC9HdWkvUmVzb3VyY2VzL2ljb25zL1RyZWVfUGFydF9QbGFuZV9QYXJhbWV0cmljLnN2ZzwvZGM6aWRlbnRpZmllcj4KICAgICAgICA8ZGM6cmlnaHRzPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+RnJlZUNBRCBMR1BMMis8L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOnJpZ2h0cz4KICAgICAgICA8Y2M6bGljZW5zZT5odHRwczovL3d3dy5nbnUub3JnL2NvcHlsZWZ0L2xlc3Nlci5odG1sPC9jYzpsaWNlbnNlPgogICAgICAgIDxkYzpjb250cmlidXRvcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPlthZ3J5c29uXSBBbGV4YW5kZXIgR3J5c29uPC9kYzp0aXRsZT4KICAgICAgICAgIDwvY2M6QWdlbnQ+CiAgICAgICAgPC9kYzpjb250cmlidXRvcj4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpZD0ibGF5ZXIxIgogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiM3MjlmY2Y7c3Ryb2tlOiMwYjE1MjE7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Ik0gOCw0MCAzNyw1MCA1NiwyMyAyNywxNSBaIgogICAgICAgaWQ9InBhdGgzMjQwIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2MiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9Im9wYWNpdHk6MC43NjM7ZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50NDY0OSk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiNmMWJjMzg7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTEuMywzOSAyNSw4LjcgMTYuNSwtMjMuNiAtMjUsLTYuOCB6IgogICAgICAgaWQ9InBhdGgzMjQwLTIiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjYyIgLz4KICAgIDxnCiAgICAgICBpZD0iZzMxNTAiCiAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLC02KSI+CiAgICAgIDxwYXRoCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlkPSJwYXRoMzEzMCIKICAgICAgICAgZD0iTSA4LDQ2IDM3LDU2IgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMjgwMDAwO3N0cm9rZS13aWR0aDo2O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlkPSJwYXRoMzEzMC0yIgogICAgICAgICBkPSJNIDgsNDYgMzcsNTYiCiAgICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNlZjI5Mjk7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIgLz4KICAgIDwvZz4KICAgIDxnCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwtMSwyNywxMDEpIgogICAgICAgaWQ9ImczMTUwLTgiPgogICAgICA8cGF0aAogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBpZD0icGF0aDMxMzAtOSIKICAgICAgICAgZD0iTSAxMCw1MSAyOSw3OCIKICAgICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzI4MDAwMDtzdHJva2Utd2lkdGg6NjtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIgogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIiAvPgogICAgICA8cGF0aAogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBpZD0icGF0aDMxMzAtMi03IgogICAgICAgICBkPSJNIDEwLDUxIDI5LDc4IgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZWYyOTI5O3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiIC8+CiAgICA8L2c+CiAgICA8ZwogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC41NjEzNzg3LDEuNTY0MTgyM2UtOCwwLDAuNTY1NzY5NzIsMzAuMjQ4MTQzLDIwLjU1ODkxNikiCiAgICAgICBpZD0iZzM4MjctMS0zLTkyLTEiPgogICAgICA8ZwogICAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMS4zMjIxMzEsNDAuNTcwMjg5KSIKICAgICAgICAgaWQ9ImczNzk3LTktNS02Ni03Ij4KICAgICAgICA8cGF0aAogICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgc3R5bGU9ImZpbGw6I2VmMjkyOTtzdHJva2U6IzI4MDAwMDtzdHJva2Utd2lkdGg6My41NDg4MDUyNDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgICAgICAgIGlkPSJwYXRoNDI1MC03MS02LTQ5LTIiCiAgICAgICAgICAgZD0iTSAtMjYuMTE4MjIxLDUuNjY0MzM0NyBBIDguOTM3OTc5Myw4Ljg2ODA3NzQgMCAxIDEgLTEyLjU0MDYzNCwxNy4yMDA5MDYgOC45Mzc5NzkzLDguODY4MDc3NCAwIDEgMSAtMjYuMTE4MjIxLDUuNjY0MzM0NyB6IiAvPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50MzgwMS0xLTMtMTQtMC0zKTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6I2VmMjkyOTtzdHJva2Utd2lkdGg6My41NDg4MDQyODtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lIgogICAgICAgICAgIGlkPSJwYXRoNDI1MC03LTMtMi01LTciCiAgICAgICAgICAgZD0ibSAtMjMuNDAyMjcsNy45NzQ0ODU4IGEgNS4zNDM5NzA2LDUuMzAyNTI5OCAwIDEgMSA4LjExNzk0LDYuODk4MTQ1MiA1LjM0Mzk3MDYsNS4zMDI1Mjk4IDAgMCAxIC04LjExNzk0LC02Ljg5ODE0NTIgeiIgLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuNTYxMzc4NywxLjU2NDE4MjNlLTgsMCwwLjU2NTc2OTcyLDQ5LjI0ODE0MywtNi40NDEwODQpIgogICAgICAgaWQ9ImczODI3LTEtMy05Mi0xLTIiPgogICAgICA8ZwogICAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMS4zMjIxMzEsNDAuNTcwMjg5KSIKICAgICAgICAgaWQ9ImczNzk3LTktNS02Ni03LTciPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICBzdHlsZT0iZmlsbDojZWYyOTI5O3N0cm9rZTojMjgwMDAwO3N0cm9rZS13aWR0aDozLjU0ODgwNTI0O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICAgICAgaWQ9InBhdGg0MjUwLTcxLTYtNDktMi0wIgogICAgICAgICAgIGQ9Ik0gLTI2LjExODIyMSw1LjY2NDMzNDcgQSA4LjkzNzk3OTMsOC44NjgwNzc0IDAgMSAxIC0xMi41NDA2MzQsMTcuMjAwOTA2IDguOTM3OTc5Myw4Ljg2ODA3NzQgMCAxIDEgLTI2LjExODIyMSw1LjY2NDMzNDcgeiIgLz4KICAgICAgICA8cGF0aAogICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDM4MDEtMS0zLTE0LTAtMzUpO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojZWYyOTI5O3N0cm9rZS13aWR0aDozLjU0ODgwNDI4O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICAgICAgaWQ9InBhdGg0MjUwLTctMy0yLTUtNy05IgogICAgICAgICAgIGQ9Im0gLTIzLjQwMjI3LDcuOTc0NDg1OCBhIDUuMzQzOTcwNiw1LjMwMjUyOTggMCAxIDEgOC4xMTc5NCw2Ljg5ODE0NTIgNS4zNDM5NzA2LDUuMzAyNTI5OCAwIDAgMSAtOC4xMTc5NCwtNi44OTgxNDUyIHoiIC8+CiAgICAgIDwvZz4KICAgIDwvZz4KICAgIDxnCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjU2MTM3ODcsMS41NjQxODIzZS04LDAsMC41NjU3Njk3MiwxLjI0ODE0MywxMC41NTg5MTYpIgogICAgICAgaWQ9ImczODI3LTEtMy05Mi0xLTYiPgogICAgICA8ZwogICAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzMS4zMjIxMzEsNDAuNTcwMjg5KSIKICAgICAgICAgaWQ9ImczNzk3LTktNS02Ni03LTEiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICBzdHlsZT0iZmlsbDojZWYyOTI5O3N0cm9rZTojMjgwMDAwO3N0cm9rZS13aWR0aDozLjU0ODgwNTI0O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICAgICAgaWQ9InBhdGg0MjUwLTcxLTYtNDktMi04IgogICAgICAgICAgIGQ9Ik0gLTI2LjExODIyMSw1LjY2NDMzNDcgQSA4LjkzNzk3OTMsOC44NjgwNzc0IDAgMSAxIC0xMi41NDA2MzQsMTcuMjAwOTA2IDguOTM3OTc5Myw4Ljg2ODA3NzQgMCAxIDEgLTI2LjExODIyMSw1LjY2NDMzNDcgeiIgLz4KICAgICAgICA8cGF0aAogICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDM4MDEtMS0zLTE0LTAtMzYpO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojZWYyOTI5O3N0cm9rZS13aWR0aDozLjU0ODgwNDI4O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICAgICAgaWQ9InBhdGg0MjUwLTctMy0yLTUtNy03IgogICAgICAgICAgIGQ9Im0gLTIzLjQwMjI3LDcuOTc0NDg1OCBhIDUuMzQzOTcwNiw1LjMwMjUyOTggMCAxIDEgOC4xMTc5NCw2Ljg5ODE0NTIgNS4zNDM5NzA2LDUuMzAyNTI5OCAwIDAgMSAtOC4xMTc5NCwtNi44OTgxNDUyIHoiIC8+CiAgICAgIDwvZz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=
"""
Measure_Delete_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjQ4cHgiCiAgIGhlaWdodD0iNDhweCIKICAgaWQ9InN2ZzU3IgogICBzb2RpcG9kaTp2ZXJzaW9uPSIwLjMyIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjAgcjE1Mjk5IgogICBzb2RpcG9kaTpkb2NuYW1lPSJFZGl0LWRlbGV0ZS5zdmciCiAgIHZlcnNpb249IjEuMSI+CiAgPGRlZnMKICAgICBpZD0iZGVmczMiPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMjQxIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6d2hpdGU7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wMzI0MyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6d2hpdGU7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzI0NSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMyMjkiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojNTk4YmNiO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDMyMzEiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMzI0OSIKICAgICAgICAgb2Zmc2V0PSIwLjc1Njc1Njc4IgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMmY1Yzk2O3N0b3Atb3BhY2l0eToxOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzIwM2U2NTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AzMjMzIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzE3NSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOmJsYWNrO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDMxNzciIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOmJsYWNrO3N0b3Atb3BhY2l0eTowOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDMxNzkiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMTU5Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6YmxhY2s7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wMzE2MSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6YmxhY2s7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzE2MyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMxNDEiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojYTQwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDMxNDMiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmM0YzQ7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzE0NSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMwMDgiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjp3aGl0ZTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzMDEwIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZDNkM2QzO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDMwMTIiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQyOTc4Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6d2hpdGU7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wMjk4MCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2Q1ZDVkNTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AyOTgyIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mjk2NCI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOmJsYWNrO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDI5NjYiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOmJsYWNrO3N0b3Atb3BhY2l0eTowOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDI5NjgiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ1MDYwIgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50NjcxOSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgtMi43NzQzODksMCwwLDEuOTY5NzA2LDExMi43NjIzLC04NzIuODg1NCkiCiAgICAgICBjeD0iNjA1LjcxNDI5IgogICAgICAgY3k9IjQ4Ni42NDc4OSIKICAgICAgIGZ4PSI2MDUuNzE0MjkiCiAgICAgICBmeT0iNDg2LjY0Nzg5IgogICAgICAgcj0iMTE3LjE0Mjg2IiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ1MDYwIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6YmxhY2s7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNTA2MiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6YmxhY2s7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNTA2NCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDUwNjAiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQ2NzE3IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDIuNzc0Mzg5LDAsMCwxLjk2OTcwNiwtMTg5MS42MzMsLTg3Mi44ODU0KSIKICAgICAgIGN4PSI2MDUuNzE0MjkiCiAgICAgICBjeT0iNDg2LjY0Nzg5IgogICAgICAgZng9IjYwNS43MTQyOSIKICAgICAgIGZ5PSI0ODYuNjQ3ODkiCiAgICAgICByPSIxMTcuMTQyODYiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDUwNDgiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjpibGFjaztzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A1MDUwIiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDUwNTYiCiAgICAgICAgIG9mZnNldD0iMC41IgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjpibGFjaztzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOmJsYWNrO3N0b3Atb3BhY2l0eTowOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDUwNTIiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ1MDQ4IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NjcxNSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgyLjc3NDM4OSwwLDAsMS45Njk3MDYsLTE4OTIuMTc5LC04NzIuODg1NCkiCiAgICAgICB4MT0iMzAyLjg1NzE1IgogICAgICAgeTE9IjM2Ni42NDc4OSIKICAgICAgIHgyPSIzMDIuODU3MTUiCiAgICAgICB5Mj0iNjA5LjUwNTA3IiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODEiPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDM4MiIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eToxOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzODMiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6d2hpdGU7c3RvcC1vcGFjaXR5OjAuODQ0NjYwMjI7IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzY4Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MC4xMDMwOTI3ODsiCiAgICAgICAgIG9mZnNldD0iMC4wMDAwMDAwIgogICAgICAgICBpZD0ic3RvcDM2OSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MC4wMDAwMDAwOyIKICAgICAgICAgb2Zmc2V0PSIxLjAwMDAwMDAiCiAgICAgICAgIGlkPSJzdG9wMzcyIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MTA2NSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNiNWMwNTE7c3RvcC1vcGFjaXR5OjEuMDAwMDAwMDsiCiAgICAgICAgIG9mZnNldD0iMC4wMDAwMDAwIgogICAgICAgICBpZD0ic3RvcDEwNjYiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM4NThlM2Y7c3RvcC1vcGFjaXR5OjEuMDAwMDAwMDsiCiAgICAgICAgIG9mZnNldD0iMS4wMDAwMDAwIgogICAgICAgICBpZD0ic3RvcDEwNjciIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQxNzIiPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDE3MyIKICAgICAgICAgb2Zmc2V0PSIwLjAwMDAwMDAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM2MTZjMDg7c3RvcC1vcGFjaXR5OjEuMDAwMDAwMDsiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMTc0IgogICAgICAgICBvZmZzZXQ9IjEuMDAwMDAwMCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzQ5NTEwNjtzdG9wLW9wYWNpdHk6MS4wMDAwMDAwOyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDE2MSI+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMTYyIgogICAgICAgICBvZmZzZXQ9IjAuMDAwMDAwMCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzU3NTk1NTtzdG9wLW9wYWNpdHk6MS4wMDAwMDAwOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AxNjMiCiAgICAgICAgIG9mZnNldD0iMS4wMDAwMDAwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojN2M3ZTc5O3N0b3Atb3BhY2l0eToxLjAwMDAwMDA7IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MTU3Ij4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AxNTgiCiAgICAgICAgIG9mZnNldD0iMC4wMDAwMDAwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojYmFiZGI2O3N0b3Atb3BhY2l0eToxLjAwMDAwMDA7IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDE1OSIKICAgICAgICAgb2Zmc2V0PSIxLjAwMDAwMDAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmMWY1ZWM7c3RvcC1vcGFjaXR5OjEuMDAwMDAwMDsiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQxNDkiCiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDE1MCIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AxNTEiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MDsiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQxODY5Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2M5YzljOTtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AxODcwIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojNzg3YTdiO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDE4NzEiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHkyPSI2OS40NjA1MDMiCiAgICAgICB4Mj0iNy41MjkxMTE5IgogICAgICAgeTE9IjI3LjM3NjYyMSIKICAgICAgIHgxPSI3LjM3Mzg2MDgiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDMuNDk1MDE2LDAsMCwwLjM0NDMyMywtMi45NzIwODcsLTMuNDA4MTQ4ZS0yKSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDE1MiIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDE0OSIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MTQ5IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MjA1OCIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgzLjUyMDQxMSwwLDAsMC4zNDgwMTYsLTMuMDM3OTE4LDEuNTQ0MjU3KSIKICAgICAgIHgxPSI3LjM3Mzg2MDgiCiAgICAgICB5MT0iMjcuMzc2NjIxIgogICAgICAgeDI9IjcuNTI5MTExOSIKICAgICAgIHkyPSI2OS40NjA1MDMiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDI5NjQiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQyOTcwIgogICAgICAgeDE9IjI3LjUiCiAgICAgICB5MT0iMTQiCiAgICAgICB4Mj0iMjcuNjI1IgogICAgICAgeTI9IjE4Ljc1MDAxNSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwwLjc5OTk5MSwwLC0xLjE5OTg3NSkiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDI5NzgiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQyOTg0IgogICAgICAgY3g9IjkuNTc5NjI0MiIKICAgICAgIGN5PSIzMy41ODgyNjQiCiAgICAgICBmeD0iOS41Nzk2MjQyIgogICAgICAgZnk9IjMzLjU4ODI2NCIKICAgICAgIHI9IjIuNTUyNzc0MiIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMy4xNDY3MTUsNi45MjQ4ODZlLTIsLTYuMDM5OTkxZS0yLDIuNzQ0NjEyLC0xNy44Mjg4NywtNjEuNzk2OTkpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDI5NzgiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQyOTg4IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDMuMTQ2NzE1LDYuOTI0ODg2ZS0yLC02LjAzOTk5MWUtMiwyLjc0NDYxMiwtMTYuMTgyNDMsLTYxLjc5Njk5KSIKICAgICAgIGN4PSI5LjU3OTYyNDIiCiAgICAgICBjeT0iMzMuNTg4MjY0IgogICAgICAgZng9IjkuNTc5NjI0MiIKICAgICAgIGZ5PSIzMy41ODgyNjQiCiAgICAgICByPSIyLjU1Mjc3NDIiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDI5NzgiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQyOTkyIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDMuMTQ2NzE1LDYuOTI0ODg2ZS0yLC02LjAzOTk5MWUtMiwyLjc0NDYxMiwtMTQuMzMyNTUsLTYxLjg5Njk5KSIKICAgICAgIGN4PSI5LjU3OTYyNDIiCiAgICAgICBjeT0iMzMuNTg4MjY0IgogICAgICAgZng9IjkuNTc5NjI0MiIKICAgICAgIGZ5PSIzMy41ODgyNjQiCiAgICAgICByPSIyLjU1Mjc3NDIiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDI5NzgiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQyOTk2IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDMuMTQ2NzE1LDYuOTI0ODg2ZS0yLC02LjAzOTk5MWUtMiwyLjc0NDYxMiwtMTIuNjc5OTEsLTYxLjAzMTU1KSIKICAgICAgIGN4PSI5LjU3OTYyNDIiCiAgICAgICBjeT0iMzMuNTg4MjY0IgogICAgICAgZng9IjkuNTc5NjI0MiIKICAgICAgIGZ5PSIzMy41ODgyNjQiCiAgICAgICByPSIyLjU1Mjc3NDIiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDI5NzgiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQzMDAwIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDMuMTQ2NzE1LDYuOTI0ODg2ZS0yLC02LjAzOTk5MWUtMiwyLjc0NDYxMiwtMTAuNzg1MDYsLTYwLjk5MDgxKSIKICAgICAgIGN4PSI5LjU3OTYyNDIiCiAgICAgICBjeT0iMzMuNTg4MjY0IgogICAgICAgZng9IjkuNTc5NjI0MiIKICAgICAgIGZ5PSIzMy41ODgyNjQiCiAgICAgICByPSIyLjU1Mjc3NDIiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDI5NzgiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQzMDA0IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDMuMTQ2NzE1LDYuOTI0ODg2ZS0yLC02LjAzOTk5MWUtMiwyLjc0NDYxMiwtMTkuNTgzNjIsLTYxLjc1MTcyKSIKICAgICAgIGN4PSI5LjU3OTYyNDIiCiAgICAgICBjeT0iMzMuNTg4MjY0IgogICAgICAgZng9IjkuNTc5NjI0MiIKICAgICAgIGZ5PSIzMy41ODgyNjQiCiAgICAgICByPSIyLjU1Mjc3NDIiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDMwMDgiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMDk3IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuOTg0NTMzLDAsMCwxLjIwMzU4NiwwLjk3MTkwMywtMi4xMjMxOTEpIgogICAgICAgeDE9IjI2LjE1MTMzOSIKICAgICAgIHkxPSItNS43NDAxMTU2IgogICAgICAgeDI9IjI3LjUwMDM4NyIKICAgICAgIHkyPSIxMy4zNTE3NjgiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDI5NzgiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQzMTA3IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDMuMTQ2NzE1LDYuOTI0ODg2ZS0yLC02LjAzOTk5MWUtMiwyLjc0NDYxMiwtOC4zMzI1NjIsLTYxLjg5Njk5KSIKICAgICAgIGN4PSI5LjU3OTYyNDIiCiAgICAgICBjeT0iMzMuNTg4MjY0IgogICAgICAgZng9IjkuNTc5NjI0MiIKICAgICAgIGZ5PSIzMy41ODgyNjQiCiAgICAgICByPSIyLjU1Mjc3NDIiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDI5NzgiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQzMTExIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDMuMTQ2NzE1LDYuOTI0ODg2ZS0yLC02LjAzOTk5MWUtMiwyLjc0NDYxMiwtNi4zMzI1NjIsLTYxLjg5Njk5KSIKICAgICAgIGN4PSI5LjU3OTYyNDIiCiAgICAgICBjeT0iMzMuNTg4MjY0IgogICAgICAgZng9IjkuNTc5NjI0MiIKICAgICAgIGZ5PSIzMy41ODgyNjQiCiAgICAgICByPSIyLjU1Mjc3NDIiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDI5NzgiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQzMTE1IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDMuMTQ2NzE1LDYuOTI0ODg2ZS0yLC02LjAzOTk5MWUtMiwyLjc0NDYxMiwtNC4zMzI1NjIsLTYxLjg5Njk5KSIKICAgICAgIGN4PSI5LjU3OTYyNDIiCiAgICAgICBjeT0iMzMuNTg4MjY0IgogICAgICAgZng9IjkuNTc5NjI0MiIKICAgICAgIGZ5PSIzMy41ODgyNjQiCiAgICAgICByPSIyLjU1Mjc3NDIiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDI5NzgiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQzMTE5IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDMuMTQ2NzE1LDYuOTI0ODg2ZS0yLC02LjAzOTk5MWUtMiwyLjc0NDYxMiwtMi4zMzI1NjIsLTYxLjg5Njk5KSIKICAgICAgIGN4PSI5LjU3OTYyNDIiCiAgICAgICBjeT0iMzMuNTg4MjY0IgogICAgICAgZng9IjkuNTc5NjI0MiIKICAgICAgIGZ5PSIzMy41ODgyNjQiCiAgICAgICByPSIyLjU1Mjc3NDIiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDI5NzgiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQzMTIzIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDMuMTQ2NzE1LDYuOTI0ODg2ZS0yLC02LjAzOTk5MWUtMiwyLjc0NDYxMiwtMC4zMzI1NjIsLTYxLjg5Njk5KSIKICAgICAgIGN4PSI5LjU3OTYyNDIiCiAgICAgICBjeT0iMzMuNTg4MjY0IgogICAgICAgZng9IjkuNTc5NjI0MiIKICAgICAgIGZ5PSIzMy41ODgyNjQiCiAgICAgICByPSIyLjU1Mjc3NDIiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDI5NzgiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQzMTI3IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDMuMTQ2NzE1LDYuOTI0ODg2ZS0yLC02LjAzOTk5MWUtMiwyLjc0NDYxMiwxLjY2NzQzOCwtNjEuODk2OTkpIgogICAgICAgY3g9IjkuNTc5NjI0MiIKICAgICAgIGN5PSIzMy41ODgyNjQiCiAgICAgICBmeD0iOS41Nzk2MjQyIgogICAgICAgZnk9IjMzLjU4ODI2NCIKICAgICAgIHI9IjIuNTUyNzc0MiIgLz4KICAgIDxyYWRpYWxHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50Mjk3OCIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDMxMzEiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMy4xNDY3MTUsNi45MjQ4ODZlLTIsLTYuMDM5OTkxZS0yLDIuNzQ0NjEyLDMuNjY3NDM4LC02MS44OTY5OSkiCiAgICAgICBjeD0iOS41Nzk2MjQyIgogICAgICAgY3k9IjMzLjU4ODI2NCIKICAgICAgIGZ4PSI5LjU3OTYyNDIiCiAgICAgICBmeT0iMzMuNTg4MjY0IgogICAgICAgcj0iMi41NTI3NzQyIiAvPgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQyOTc4IgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50MzEzNSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgzLjE0NjcxNSw2LjkyNDg4NmUtMiwtNi4wMzk5OTFlLTIsMi43NDQ2MTIsNS42Njc0MzgsLTYxLjg5Njk5KSIKICAgICAgIGN4PSI5LjU3OTYyNDIiCiAgICAgICBjeT0iMzMuNTg4MjY0IgogICAgICAgZng9IjkuNTc5NjI0MiIKICAgICAgIGZ5PSIzMy41ODgyNjQiCiAgICAgICByPSIyLjU1Mjc3NDIiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDMxNDEiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMTQ3IgogICAgICAgeDE9IjQwLjUiCiAgICAgICB5MT0iMTMuODIyNzk3IgogICAgICAgeDI9IjQwLjUiCiAgICAgICB5Mj0iMTYuODc3ODQyIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDMxNTkiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMTY1IgogICAgICAgeDE9IjIzLjUiCiAgICAgICB5MT0iMTIiCiAgICAgICB4Mj0iMjMuNSIKICAgICAgIHkyPSI2LjY4NzUiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzE3NSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMxODEiCiAgICAgICB4MT0iMjUiCiAgICAgICB5MT0iMjEiCiAgICAgICB4Mj0iMjUiCiAgICAgICB5Mj0iMzIuMjUiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzIyOSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMyMzkiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHgxPSIyNC4wMDAwMDYiCiAgICAgICB5MT0iMTUuODM3MzEzIgogICAgICAgeDI9IjI0LjAwMDAwNiIKICAgICAgIHkyPSIyMSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzI0MSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMyNDciCiAgICAgICB4MT0iMjEuNjc3OTEiCiAgICAgICB5MT0iMTkuOTY5NTA3IgogICAgICAgeDI9IjIyLjMzMzUyMyIKICAgICAgIHkyPSIxMS42NDM5NzYiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICA8L2RlZnM+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIHNob3dib3JkZXI9InRydWUiCiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjAuMTMzMzMzMzMiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjcuNjA0MTY2NyIKICAgICBpbmtzY2FwZTpjeD0iMjQiCiAgICAgaW5rc2NhcGU6Y3k9IjI0IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6Z3JpZC1iYm94PSJ0cnVlIgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJweCIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9Ijg3MiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI2MjEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjMwNiIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iODIiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9ImZhbHNlIgogICAgIGlua3NjYXBlOm9iamVjdC1ub2Rlcz0idHJ1ZSIKICAgICBpbmtzY2FwZTpvYmplY3QtcG9pbnRzPSJmYWxzZSIKICAgICBpbmtzY2FwZTpvYmplY3QtYmJveD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6Z3VpZGUtYmJveD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6Z3JpZC1wb2ludHM9InRydWUiCiAgICAgaW5rc2NhcGU6b2JqZWN0LXBhdGhzPSJmYWxzZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIj4KICAgIDxpbmtzY2FwZTpncmlkCiAgICAgICBpZD0iR3JpZEZyb21QcmUwNDZTZXR0aW5ncyIKICAgICAgIHR5cGU9Inh5Z3JpZCIKICAgICAgIG9yaWdpbng9IjAiCiAgICAgICBvcmlnaW55PSIwIgogICAgICAgc3BhY2luZ3g9IjEiCiAgICAgICBzcGFjaW5neT0iMSIKICAgICAgIGNvbG9yPSIjM2YzZmZmIgogICAgICAgZW1wY29sb3I9IiMzZjNmZmYiCiAgICAgICBvcGFjaXR5PSIwLjE1IgogICAgICAgZW1wb3BhY2l0eT0iMC4zOCIKICAgICAgIGVtcHNwYWNpbmc9IjQiIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+RGVsZXRlPC9kYzp0aXRsZT4KICAgICAgICA8ZGM6ZGF0ZSAvPgogICAgICAgIDxkYzpjcmVhdG9yPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+SmFrdWIgU3RlaW5lcjwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6Y3JlYXRvcj4KICAgICAgICA8ZGM6c3ViamVjdD4KICAgICAgICAgIDxyZGY6QmFnPgogICAgICAgICAgICA8cmRmOmxpPmVkaXQ8L3JkZjpsaT4KICAgICAgICAgICAgPHJkZjpsaT5kZWxldGU8L3JkZjpsaT4KICAgICAgICAgICAgPHJkZjpsaT5zaHJlZGRlcjwvcmRmOmxpPgogICAgICAgICAgPC9yZGY6QmFnPgogICAgICAgIDwvZGM6c3ViamVjdD4KICAgICAgICA8ZGM6cHVibGlzaGVyPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+Tm92ZWxsLCBJbmMuPC9kYzp0aXRsZT4KICAgICAgICAgIDwvY2M6QWdlbnQ+CiAgICAgICAgPC9kYzpwdWJsaXNoZXI+CiAgICAgICAgPGNjOmxpY2Vuc2UKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzIuMC8iIC8+CiAgICAgICAgPGRjOmNvbnRyaWJ1dG9yPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGUgLz4KICAgICAgICAgIDwvY2M6QWdlbnQ+CiAgICAgICAgPC9kYzpjb250cmlidXRvcj4KICAgICAgPC9jYzpXb3JrPgogICAgICA8Y2M6TGljZW5zZQogICAgICAgICByZGY6YWJvdXQ9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzIuMC8iPgogICAgICAgIDxjYzpwZXJtaXRzCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9SZXByb2R1Y3Rpb24iIC8+CiAgICAgICAgPGNjOnBlcm1pdHMKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL0Rpc3RyaWJ1dGlvbiIgLz4KICAgICAgICA8Y2M6cmVxdWlyZXMKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL05vdGljZSIgLz4KICAgICAgICA8Y2M6cmVxdWlyZXMKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL0F0dHJpYnV0aW9uIiAvPgogICAgICAgIDxjYzpwZXJtaXRzCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9EZXJpdmF0aXZlV29ya3MiIC8+CiAgICAgICAgPGNjOnJlcXVpcmVzCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9TaGFyZUFsaWtlIiAvPgogICAgICA8L2NjOkxpY2Vuc2U+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlkPSJsYXllcjEiCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciI+CiAgICA8ZwogICAgICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMi4yNjIzODNlLTIsMCwwLDEuOTY2MjQ4ZS0yLDQ0LjM5NTE5LDQxLjk4MTQ2KSIKICAgICAgIGlkPSJnNjcwNyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI2Ni44MDE1MTQiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNjYuODAxNTE0Ij4KICAgICAgPHJlY3QKICAgICAgICAgc3R5bGU9Im9wYWNpdHk6MC40MDIwNjE4NTtjb2xvcjpibGFjaztmaWxsOnVybCgjbGluZWFyR3JhZGllbnQ2NzE1KTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7bWFya2VyOm5vbmU7bWFya2VyLXN0YXJ0Om5vbmU7bWFya2VyLW1pZDpub25lO21hcmtlci1lbmQ6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZS1vcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGUiCiAgICAgICAgIGlkPSJyZWN0NjcwOSIKICAgICAgICAgd2lkdGg9IjEzMzkuNjMzNSIKICAgICAgICAgaGVpZ2h0PSI0NzguMzU3MTgiCiAgICAgICAgIHg9Ii0xNTU5LjI1MjMiCiAgICAgICAgIHk9Ii0xNTAuNjk2ODUiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjAuNDAyMDYxODU7Y29sb3I6YmxhY2s7ZmlsbDp1cmwoI3JhZGlhbEdyYWRpZW50NjcxNyk7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO21hcmtlcjpub25lO21hcmtlci1zdGFydDpub25lO21hcmtlci1taWQ6bm9uZTttYXJrZXItZW5kOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgICBkPSJNIC0yMTkuNjE4NzYsLTE1MC42ODAzOCBDIC0yMTkuNjE4NzYsLTE1MC42ODAzOCAtMjE5LjYxODc2LDMyNy42NTA0MSAtMjE5LjYxODc2LDMyNy42NTA0MSBDIC03Ni43NDQ1OTQsMzI4LjU1MDg2IDEyNS43ODE0NiwyMjAuNDgwNzUgMTI1Ljc4MTM4LDg4LjQ1NDIzNSBDIDEyNS43ODEzOCwtNDMuNTcyMzAyIC0zMy42NTU0MzYsLTE1MC42ODAzNiAtMjE5LjYxODc2LC0xNTAuNjgwMzggeiAiCiAgICAgICAgIGlkPSJwYXRoNjcxMSIKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjIiAvPgogICAgICA8cGF0aAogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2MiCiAgICAgICAgIGlkPSJwYXRoNjcxMyIKICAgICAgICAgZD0iTSAtMTU1OS4yNTIzLC0xNTAuNjgwMzggQyAtMTU1OS4yNTIzLC0xNTAuNjgwMzggLTE1NTkuMjUyMywzMjcuNjUwNDEgLTE1NTkuMjUyMywzMjcuNjUwNDEgQyAtMTcwMi4xMjY1LDMyOC41NTA4NiAtMTkwNC42NTI1LDIyMC40ODA3NSAtMTkwNC42NTI1LDg4LjQ1NDIzNSBDIC0xOTA0LjY1MjUsLTQzLjU3MjMwMiAtMTc0NS4yMTU3LC0xNTAuNjgwMzYgLTE1NTkuMjUyMywtMTUwLjY4MDM4IHogIgogICAgICAgICBzdHlsZT0ib3BhY2l0eTowLjQwMjA2MTg1O2NvbG9yOmJsYWNrO2ZpbGw6dXJsKCNyYWRpYWxHcmFkaWVudDY3MTkpO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjttYXJrZXI6bm9uZTttYXJrZXItc3RhcnQ6bm9uZTttYXJrZXItbWlkOm5vbmU7bWFya2VyLWVuZDpub25lO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZSIgLz4KICAgIDwvZz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0ib3BhY2l0eTowLjM4NjU5Nzk0O2NvbG9yOmJsYWNrO2ZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDMxODEpO2ZpbGwtb3BhY2l0eToxLjA7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuNDAwMDAwMDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7bWFya2VyOm5vbmU7bWFya2VyLXN0YXJ0Om5vbmU7bWFya2VyLW1pZDpub25lO21hcmtlci1lbmQ6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZS1vcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGUiCiAgICAgICBkPSJNIDQuNzUsMjEgTCA0My4yNSwyMSBMIDQyLjM3NSwzMi4yNSBMIDUuNjI1LDMyLjI1IEwgNC43NSwyMSB6ICIKICAgICAgIGlkPSJwYXRoMzE3MyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI2Ni44MDE1MTQiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNjYuODAxNTE0IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiNiYWJkYjY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiM1NTU3NTM7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MTtvcGFjaXR5OjAuNSIKICAgICAgIGQ9Ik0gNC4wMDA4MDUsMTYuNTAwMDI4IEMgMy45NTY4NDQzLDE2LjQ2NDU3NCA1LjcyNzcyOTgsNDIuMDA1NTIxIDUuNzI4MjM0Myw0Mi4wMTMyNjMgQyA1Ljg5NDM2MzYsNDQuNTYzOTYxIDcuMjg4OTQ3OSw0NS40OTYxOTggOC44NDk4ODk5LDQ1LjQ5OTk5NiBDIDguOTA1NjY4Miw0NS41MDAxMjcgMzguMTMzOTM0LDQ1LjQ5NjcxMyAzOC43NTY2NDQsNDUuNDk0MDU1IEMgNDEuMzg1MzQxLDQ1LjQ4MjgzNiA0Mi4wMjkzNDQsNDMuODU5NDcyIDQyLjIwMjI2Nyw0Mi4wODU3NzYgQyA0Mi4yMTYxMzYsNDIuMDUwODA1IDQzLjk4NjExNSwxNi41MzUgNDMuOTk5OTgyLDE2LjUwMDAyOCBDIDMwLjY2NjkyNCwxNi41MDAwMjggMTcuMzMzODY2LDE2LjUwMDAyOCA0LjAwMDgwNSwxNi41MDAwMjggeiAiCiAgICAgICBpZD0icGF0aDE3NTEiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2MiCiAgICAgICBpbmtzY2FwZTpyX2N4PSJ0cnVlIgogICAgICAgaW5rc2NhcGU6cl9jeT0idHJ1ZSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI2Ni44MDE1MTQiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNjYuODAxNTE0IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJvcGFjaXR5OjAuMjM3MTEzMzg7Y29sb3I6YmxhY2s7ZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50MjA1OCk7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7bWFya2VyOm5vbmU7bWFya2VyLXN0YXJ0Om5vbmU7bWFya2VyLW1pZDpub25lO21hcmtlci1lbmQ6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTpibG9jayIKICAgICAgIGQ9Ik0gNDMuNDU3OTU0LDIwLjcxMjY2OSBMIDcuMjA3OTM3MSwyMC42ODkyNjQgQyAzNC41MTkyNDcsMjEuMzI2NTkyIDM5Ljg4NTE0NCwyNC4zMzc0MTIgNDMuMjE0MTg3LDI0LjE4MzU3NSBMIDQzLjQ1Nzk1NCwyMC43MTI2NjkgeiAiCiAgICAgICBpZD0icGF0aDE4OTMiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2MiCiAgICAgICBpbmtzY2FwZTpyX2N4PSJ0cnVlIgogICAgICAgaW5rc2NhcGU6cl9jeT0idHJ1ZSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI2Ni44MDE1MTQiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNjYuODAxNTE0IiAvPgogICAgPGcKICAgICAgIGlkPSJnMzE5OSIKICAgICAgIHN0eWxlPSJvcGFjaXR5OjAuMTI4ODY1OTg7ZmlsbDpibGFjaztmaWxsLW9wYWNpdHk6MTtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjEuMztzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOC44Mzg4NjVlLTIsOC44Mzg4NjVlLTIpIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjY2LjgwMTUxNCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI2Ni44MDE1MTQiPgogICAgICA8cGF0aAogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNzY2NzY2MiCiAgICAgICAgIGlkPSJwYXRoMzIwMSIKICAgICAgICAgZD0iTSAyOS4xNjM0ODcsMTkuNjE0MDc0IEMgMjkuMTYzNDg3LDE5LjYxNDA3NCAzMC4yNzk0NzMsMjMuMzM1NDUgMjkuNTE3MTQ0LDI2LjM0ODA1NCBDIDI4Ljc1NDgxNSwyOS4zNjA2NTggMjkuMjY5MjQ4LDM0LjIxMDE2NyAyOS4yNjkyNDgsMzQuMjEwMTY3IEwgMzAuODg0MzczLDM0LjYzNDM3MyBDIDMwLjg4NDM3MywzNC42MzQzNzMgMzAuMTE3NDk1LDMwLjAyODYzOSAzMC45MzEzNTcsMjYuNTI0ODMxIEMgMzEuNzQ1MjE5LDIzLjAyMTAyMyAzMC41Nzc4MTQsMTkuNjE0OTg4IDMwLjU3NzgxNCwxOS42MTQ5ODggTCAyOS4xNjM0ODcsMTkuNjE0MDc0IHogIgogICAgICAgICBzdHlsZT0ib3BhY2l0eToxO2NvbG9yOmJsYWNrO2ZpbGw6YmxhY2s7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOmJsYWNrO3N0cm9rZS13aWR0aDoxLjM7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7bWFya2VyOm5vbmU7bWFya2VyLXN0YXJ0Om5vbmU7bWFya2VyLW1pZDpub25lO21hcmtlci1lbmQ6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZS1vcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGUiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NjY3NjYyIKICAgICAgICAgaWQ9InBhdGgzMjAzIgogICAgICAgICBkPSJNIDkuOTEyNDE2OCwxOS43NTkzNDEgQyA5LjkxMjQxNjgsMTkuNzU5MzQxIDExLjAyODQwNCwyMy40ODA3MTcgMTAuMjY2MDc0LDI2LjQ5MzMyMSBDIDkuNTAzNzQ0OCwyOS41MDU5MjUgMTAuMDE4MTc4LDM0LjM1NTQzNCAxMC4wMTgxNzgsMzQuMzU1NDM0IEwgMTEuNDU2NTI3LDMzLjgwNzM2OCBDIDExLjQ1NjUyNywzMy44MDczNjggMTAuODY2NDI2LDMwLjE3MzkwNiAxMS42ODAyODgsMjYuNjcwMDk4IEMgMTIuNDk0MTUsMjMuMTY2MjkgMTEuMzI2NzQ1LDE5Ljc2MDI1NSAxMS4zMjY3NDUsMTkuNzYwMjU1IEwgOS45MTI0MTY4LDE5Ljc1OTM0MSB6ICIKICAgICAgICAgc3R5bGU9Im9wYWNpdHk6MTtjb2xvcjpibGFjaztmaWxsOmJsYWNrO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpibGFjaztzdHJva2Utd2lkdGg6MS4zO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO21hcmtlcjpub25lO21hcmtlci1zdGFydDpub25lO21hcmtlci1taWQ6bm9uZTttYXJrZXItZW5kOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIiAvPgogICAgICA8cGF0aAogICAgICAgICBzdHlsZT0ib3BhY2l0eToxO2NvbG9yOmJsYWNrO2ZpbGw6YmxhY2s7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOmJsYWNrO3N0cm9rZS13aWR0aDoxLjM7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7bWFya2VyOm5vbmU7bWFya2VyLXN0YXJ0Om5vbmU7bWFya2VyLW1pZDpub25lO21hcmtlci1lbmQ6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZS1vcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGUiCiAgICAgICAgIGQ9Ik0gMTEuNjY3MTYsMTkuNzE0MDc0IEMgMTEuNjY3MTYsMTkuNzE0MDc0IDEyLjc4MzE0NiwyMy40MzU0NSAxMi4wMjA4MTcsMjYuNDQ4MDU0IEMgMTEuMjU4NDg4LDI5LjQ2MDY1OCA4LjYxNzg0MSwzMS43NjQ0OSA4LjYxNzg0MSwzMS43NjQ0OSBMIDkuODI2MDM3OCwzMy43MzAyMiBDIDkuODI2MDM3OCwzMy43MzAyMiAxMi42MjExNjgsMzAuMTI4NjM5IDEzLjQzNTAzLDI2LjYyNDgzMSBDIDE0LjI0ODg5MiwyMy4xMjEwMjMgMTMuMDgxNDg3LDE5LjcxNDk4OCAxMy4wODE0ODcsMTkuNzE0OTg4IEwgMTEuNjY3MTYsMTkuNzE0MDc0IHogIgogICAgICAgICBpZD0icGF0aDMyMDUiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NjY3NjYyIgLz4KICAgICAgPHBhdGgKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc2Njc2NjIgogICAgICAgICBpZD0icGF0aDMyMDciCiAgICAgICAgIGQ9Ik0gMjEuMTYzNDg3LDE5LjYxNDA3NCBDIDIxLjE2MzQ4NywxOS42MTQwNzQgMjIuMjc5NDczLDIzLjMzNTQ1IDIxLjUxNzE0NCwyNi4zNDgwNTQgQyAyMC43NTQ4MTUsMjkuMzYwNjU4IDIxLjI2OTI0OCwzNC4yMTAxNjcgMjEuMjY5MjQ4LDM0LjIxMDE2NyBMIDIyLjkyODU2NywzNC43NjY5NTUgQyAyMi45Mjg1NjcsMzQuNzY2OTU1IDIyLjExNzQ5NSwzMC4wMjg2MzkgMjIuOTMxMzU3LDI2LjUyNDgzMSBDIDIzLjc0NTIxOSwyMy4wMjEwMjMgMjIuNTc3ODE0LDE5LjYxNDk4OCAyMi41Nzc4MTQsMTkuNjE0OTg4IEwgMjEuMTYzNDg3LDE5LjYxNDA3NCB6ICIKICAgICAgICAgc3R5bGU9Im9wYWNpdHk6MTtjb2xvcjpibGFjaztmaWxsOmJsYWNrO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpibGFjaztzdHJva2Utd2lkdGg6MS4zO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO21hcmtlcjpub25lO21hcmtlci1zdGFydDpub25lO21hcmtlci1taWQ6bm9uZTttYXJrZXItZW5kOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIiAvPgogICAgICA8cGF0aAogICAgICAgICBzdHlsZT0ib3BhY2l0eToxO2NvbG9yOmJsYWNrO2ZpbGw6YmxhY2s7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOmJsYWNrO3N0cm9rZS13aWR0aDoxLjM7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7bWFya2VyOm5vbmU7bWFya2VyLXN0YXJ0Om5vbmU7bWFya2VyLW1pZDpub25lO21hcmtlci1lbmQ6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZS1vcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGUiCiAgICAgICAgIGQ9Ik0gMzUuMTYzNDg3LDE5LjYxNDA3NCBDIDM1LjE2MzQ4NywxOS42MTQwNzQgMzYuMjc5NDczLDIzLjMzNTQ1IDM1LjUxNzE0NCwyNi4zNDgwNTQgQyAzNC43NTQ4MTUsMjkuMzYwNjU4IDM2LjU1MDg3OSwzMy41MDMwNiAzNi41NTA4NzksMzMuNTAzMDYgTCAzOC4wNzc2MTUsMzIuMjkyMDgyIEMgMzguMDc3NjE1LDMyLjI5MjA4MiAzNi4xMTc0OTUsMzAuMDI4NjM5IDM2LjkzMTM1NywyNi41MjQ4MzEgQyAzNy43NDUyMTksMjMuMDIxMDIzIDM2LjU3NzgxNCwxOS42MTQ5ODggMzYuNTc3ODE0LDE5LjYxNDk4OCBMIDM1LjE2MzQ4NywxOS42MTQwNzQgeiAiCiAgICAgICAgIGlkPSJwYXRoMzIwOSIKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc2Njc2NjIiAvPgogICAgICA8cGF0aAogICAgICAgICBzdHlsZT0ib3BhY2l0eToxO2NvbG9yOmJsYWNrO2ZpbGw6YmxhY2s7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOmJsYWNrO3N0cm9rZS13aWR0aDoxLjM7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7bWFya2VyOm5vbmU7bWFya2VyLXN0YXJ0Om5vbmU7bWFya2VyLW1pZDpub25lO21hcmtlci1lbmQ6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZS1vcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGUiCiAgICAgICAgIGQ9Ik0gMzEuMTYzNDg3LDE5LjYxNDA3NCBDIDMxLjE2MzQ4NywxOS42MTQwNzQgMzIuMjc5NDczLDIzLjMzNTQ1IDMxLjUxNzE0NCwyNi4zNDgwNTQgQyAzMC43NTQ4MTUsMjkuMzYwNjU4IDMxLjI2OTI0OCwzNC4yMTAxNjcgMzEuMjY5MjQ4LDM0LjIxMDE2NyBMIDMyLjc5NTk4NCwzNC4xNDgyMzcgQyAzMi43OTU5ODQsMzQuMTQ4MjM3IDMyLjExNzQ5NSwzMC4wMjg2MzkgMzIuOTMxMzU3LDI2LjUyNDgzMSBDIDMzLjc0NTIxOSwyMy4wMjEwMjMgMzIuNTc3ODE0LDE5LjYxNDk4OCAzMi41Nzc4MTQsMTkuNjE0OTg4IEwgMzEuMTYzNDg3LDE5LjYxNDA3NCB6ICIKICAgICAgICAgaWQ9InBhdGgzMjExIgogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNzY2NzY2MiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NjY3NjYyIKICAgICAgICAgaWQ9InBhdGgzMjEzIgogICAgICAgICBkPSJNIDMzLjE2MzQ4NywxOS42MTQwNzQgQyAzMy4xNjM0ODcsMTkuNjE0MDc0IDM0LjI3OTQ3MywyMy4zMzU0NSAzMy41MTcxNDQsMjYuMzQ4MDU0IEMgMzIuNzU0ODE1LDI5LjM2MDY1OCAzMi40NzM3NTMsMzQuMDMzMzkgMzIuNDczNzUzLDM0LjAzMzM5IEwgMzQuMjY1NjU0LDM0LjQ1NzU5NiBDIDM0LjI2NTY1NCwzNC40NTc1OTYgMzQuMTE3NDk1LDMwLjAyODYzOSAzNC45MzEzNTcsMjYuNTI0ODMxIEMgMzUuNzQ1MjE5LDIzLjAyMTAyMyAzNC41Nzc4MTQsMTkuNjE0OTg4IDM0LjU3NzgxNCwxOS42MTQ5ODggTCAzMy4xNjM0ODcsMTkuNjE0MDc0IHogIgogICAgICAgICBzdHlsZT0ib3BhY2l0eToxO2NvbG9yOmJsYWNrO2ZpbGw6YmxhY2s7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOmJsYWNrO3N0cm9rZS13aWR0aDoxLjM7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7bWFya2VyOm5vbmU7bWFya2VyLXN0YXJ0Om5vbmU7bWFya2VyLW1pZDpub25lO21hcmtlci1lbmQ6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZS1vcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGUiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjE7Y29sb3I6YmxhY2s7ZmlsbDpibGFjaztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjEuMztzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjttYXJrZXI6bm9uZTttYXJrZXItc3RhcnQ6bm9uZTttYXJrZXItbWlkOm5vbmU7bWFya2VyLWVuZDpub25lO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZSIKICAgICAgICAgZD0iTSAyNy4xNjM0ODcsMTkuNjE0MDc0IEMgMjcuMTYzNDg3LDE5LjYxNDA3NCAyOC4yNzk0NzMsMjMuMzM1NDUgMjcuNTE3MTQ0LDI2LjM0ODA1NCBDIDI2Ljc1NDgxNSwyOS4zNjA2NTggMjguMDY0NzQzLDMzLjk4OTE5NiAyOC4wNjQ3NDMsMzMuOTg5MTk2IEwgMjkuNzI0MDYyLDMzLjMwODU0OCBDIDI5LjcyNDA2MiwzMy4zMDg1NDggMjguMTE3NDk1LDMwLjAyODYzOSAyOC45MzEzNTcsMjYuNTI0ODMxIEMgMjkuNzQ1MjE5LDIzLjAyMTAyMyAyOC41Nzc4MTQsMTkuNjE0OTg4IDI4LjU3NzgxNCwxOS42MTQ5ODggTCAyNy4xNjM0ODcsMTkuNjE0MDc0IHogIgogICAgICAgICBpZD0icGF0aDMyMTUiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NjY3NjYyIgLz4KICAgICAgPHBhdGgKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc2Njc2NjIgogICAgICAgICBpZD0icGF0aDMyMTciCiAgICAgICAgIGQ9Ik0gMjUuMTYzNDg3LDE5LjYxNDA3NCBDIDI1LjE2MzQ4NywxOS42MTQwNzQgMjYuMjc5NDczLDIzLjMzNTQ1IDI1LjUxNzE0NCwyNi4zNDgwNTQgQyAyNC43NTQ4MTUsMjkuMzYwNjU4IDI0LjE2NDM5NCwzNC4wNzc1ODQgMjQuMTY0Mzk0LDM0LjA3NzU4NCBMIDI1LjY5MTEzLDM0LjI4MDgxOSBDIDI1LjY5MTEzLDM0LjI4MDgxOSAyNi4xMTc0OTUsMzAuMDI4NjM5IDI2LjkzMTM1NywyNi41MjQ4MzEgQyAyNy43NDUyMTksMjMuMDIxMDIzIDI2LjU3NzgxNCwxOS42MTQ5ODggMjYuNTc3ODE0LDE5LjYxNDk4OCBMIDI1LjE2MzQ4NywxOS42MTQwNzQgeiAiCiAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjE7Y29sb3I6YmxhY2s7ZmlsbDpibGFjaztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjEuMztzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjttYXJrZXI6bm9uZTttYXJrZXItc3RhcnQ6bm9uZTttYXJrZXItbWlkOm5vbmU7bWFya2VyLWVuZDpub25lO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgc3R5bGU9Im9wYWNpdHk6MTtjb2xvcjpibGFjaztmaWxsOmJsYWNrO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpibGFjaztzdHJva2Utd2lkdGg6MS4zO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO21hcmtlcjpub25lO21hcmtlci1zdGFydDpub25lO21hcmtlci1taWQ6bm9uZTttYXJrZXItZW5kOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgICBkPSJNIDIzLjE2MzQ4NywxOS42MTQwNzQgQyAyMy4xNjM0ODcsMTkuNjE0MDc0IDI0LjI3OTQ3MywyMy4zMzU0NSAyMy41MTcxNDQsMjYuMzQ4MDU0IEMgMjIuNzU0ODE1LDI5LjM2MDY1OCAyMy4yNjkyNDgsMzQuMjEwMTY3IDIzLjI2OTI0OCwzNC4yMTAxNjcgTCAyNC43MDc1OTYsMzMuNjYyMTAxIEMgMjQuNzA3NTk2LDMzLjY2MjEwMSAyNC4xMTc0OTUsMzAuMDI4NjM5IDI0LjkzMTM1NywyNi41MjQ4MzEgQyAyNS43NDUyMTksMjMuMDIxMDIzIDI0LjU3NzgxNCwxOS42MTQ5ODggMjQuNTc3ODE0LDE5LjYxNDk4OCBMIDIzLjE2MzQ4NywxOS42MTQwNzQgeiAiCiAgICAgICAgIGlkPSJwYXRoMzIxOSIKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc2Njc2NjIiAvPgogICAgICA8cGF0aAogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNzY2NzY2MiCiAgICAgICAgIGlkPSJwYXRoMzIyMSIKICAgICAgICAgZD0iTSAxMy4zMTM2MDgsMTkuNzE0MDc0IEMgMTMuMzEzNjA4LDE5LjcxNDA3NCAxNC40Mjk1OTQsMjMuNDM1NDUgMTMuNjY3MjY1LDI2LjQ0ODA1NCBDIDEyLjkwNDkzNiwyOS40NjA2NTggMTMuNDE5MzY5LDM0LjMxMDE2NyAxMy40MTkzNjksMzQuMzEwMTY3IEwgMTQuOTk5NTE3LDM0LjY5ODQyNiBDIDE0Ljk5OTUxNywzNC42OTg0MjYgMTQuMjY3NjE2LDMwLjEyODYzOSAxNS4wODE0NzgsMjYuNjI0ODMxIEMgMTUuODk1MzQsMjMuMTIxMDIzIDE0LjcyNzkzNSwxOS43MTQ5ODggMTQuNzI3OTM1LDE5LjcxNDk4OCBMIDEzLjMxMzYwOCwxOS43MTQwNzQgeiAiCiAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjE7Y29sb3I6YmxhY2s7ZmlsbDpibGFjaztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjEuMztzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjttYXJrZXI6bm9uZTttYXJrZXItc3RhcnQ6bm9uZTttYXJrZXItbWlkOm5vbmU7bWFya2VyLWVuZDpub25lO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgc3R5bGU9Im9wYWNpdHk6MTtjb2xvcjpibGFjaztmaWxsOmJsYWNrO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpibGFjaztzdHJva2Utd2lkdGg6MS4zO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO21hcmtlcjpub25lO21hcmtlci1zdGFydDpub25lO21hcmtlci1taWQ6bm9uZTttYXJrZXItZW5kOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgICBkPSJNIDE5LjQxODA4MywyMC41MjAyNTggQyAxOS40MTgwODMsMjAuNTIwMjU4IDE5LjYxNTcxNCwyNC4xMjk4MDEgMTkuMDY0NjMzLDI3LjI1NDIzOCBDIDE4LjUyNDg2MSwzMC4zMTQ1NiAyMS4zMDY0MTcsMzQuNDk2NzczIDIxLjMwNjQxNywzNC40OTY3NzMgTCAyMi43MjExNjMsMzMuODY0NDMgQyAyMi43MjExNjMsMzMuODY0NDMgMTkuOTI2NzYyLDMxLjI0ODc4NiAyMC41NTg3NTksMjcuMDc4Njk1IEMgMjEuMTE2NDMyLDIzLjM5OTAxNSAyMC44MzI0MSwyMC41MjExNzIgMjAuODMyNDEsMjAuNTIxMTcyIEwgMTkuNDE4MDgzLDIwLjUyMDI1OCB6ICIKICAgICAgICAgaWQ9InBhdGgzMjIzIgogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNzY2NzY2MiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjE7Y29sb3I6YmxhY2s7ZmlsbDpibGFjaztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjEuMztzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjttYXJrZXI6bm9uZTttYXJrZXItc3RhcnQ6bm9uZTttYXJrZXItbWlkOm5vbmU7bWFya2VyLWVuZDpub25lO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZSIKICAgICAgICAgZD0iTSAxNS4xNjM0ODcsMTkuNjE0MDc0IEMgMTUuMTYzNDg3LDE5LjYxNDA3NCAxNi4yNzk0NzMsMjMuMzM1NDUgMTUuNTE3MTQ0LDI2LjM0ODA1NCBDIDE0Ljc1NDgxNSwyOS4zNjA2NTggMTUuMjY5MjQ4LDM0LjIxMDE2NyAxNS4yNjkyNDgsMzQuMjEwMTY3IEwgMTYuNzA3NTk2LDMzLjY2MjEwMSBDIDE2LjcwNzU5NiwzMy42NjIxMDEgMTYuMTE3NDk1LDMwLjAyODYzOSAxNi45MzEzNTcsMjYuNTI0ODMxIEMgMTcuNzQ1MjE5LDIzLjAyMTAyMyAxNi41Nzc4MTQsMTkuNjE0OTg4IDE2LjU3NzgxNCwxOS42MTQ5ODggTCAxNS4xNjM0ODcsMTkuNjE0MDc0IHogIgogICAgICAgICBpZD0icGF0aDMyMjUiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NjY3NjYyIgLz4KICAgICAgPHBhdGgKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc2Njc2NjIgogICAgICAgICBpZD0icGF0aDMyMjciCiAgICAgICAgIGQ9Ik0gMTYuODE2MTI5LDIwLjQ3OTUxNSBDIDE2LjgxNjEyOSwyMC40Nzk1MTUgMTcuOTMyMTE1LDI0LjIwMDg5MSAxNy4xNjk3ODYsMjcuMjEzNDk1IEMgMTYuNDA3NDU3LDMwLjIyNjA5OSAxNC43MjY5ODgsMzEuODA0MzggMTQuNzI2OTg4LDMxLjgwNDM4IEwgMTUuOTY0OTU3LDMyLjkzOTgwNCBDIDE1Ljk2NDk1NywzMi45Mzk4MDQgMTcuNzcwMTM3LDMwLjg5NDA4IDE4LjU4Mzk5OSwyNy4zOTAyNzIgQyAxOS4zOTc4NjEsMjMuODg2NDY0IDE4LjIzMDQ1NiwyMC40ODA0MjkgMTguMjMwNDU2LDIwLjQ4MDQyOSBMIDE2LjgxNjEyOSwyMC40Nzk1MTUgeiAiCiAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjE7Y29sb3I6YmxhY2s7ZmlsbDpibGFjaztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6YmxhY2s7c3Ryb2tlLXdpZHRoOjEuMztzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjttYXJrZXI6bm9uZTttYXJrZXItc3RhcnQ6bm9uZTttYXJrZXItbWlkOm5vbmU7bWFya2VyLWVuZDpub25lO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZSIgLz4KICAgIDwvZz4KICAgIDxnCiAgICAgICBpZD0iZzMxODMiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNjYuODAxNTE0IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjY2LjgwMTUxNCI+CiAgICAgIDxwYXRoCiAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjE7Y29sb3I6YmxhY2s7ZmlsbDp1cmwoI3JhZGlhbEdyYWRpZW50MzEyMyk7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuNDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjttYXJrZXI6bm9uZTttYXJrZXItc3RhcnQ6bm9uZTttYXJrZXItbWlkOm5vbmU7bWFya2VyLWVuZDpub25lO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZSIKICAgICAgICAgZD0iTSAyOS4xNjM0ODcsMTkuNjE0MDc0IEMgMjkuMTYzNDg3LDE5LjYxNDA3NCAzMC4yNzk0NzMsMjMuMzM1NDUgMjkuNTE3MTQ0LDI2LjM0ODA1NCBDIDI4Ljc1NDgxNSwyOS4zNjA2NTggMjkuMjY5MjQ4LDM0LjIxMDE2NyAyOS4yNjkyNDgsMzQuMjEwMTY3IEwgMzAuODg0MzczLDM0LjYzNDM3MyBDIDMwLjg4NDM3MywzNC42MzQzNzMgMzAuMTE3NDk1LDMwLjAyODYzOSAzMC45MzEzNTcsMjYuNTI0ODMxIEMgMzEuNzQ1MjE5LDIzLjAyMTAyMyAzMC41Nzc4MTQsMTkuNjE0OTg4IDMwLjU3NzgxNCwxOS42MTQ5ODggTCAyOS4xNjM0ODcsMTkuNjE0MDc0IHogIgogICAgICAgICBpZD0icGF0aDMxMjEiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NjY3NjYyIgLz4KICAgICAgPHBhdGgKICAgICAgICAgc3R5bGU9Im9wYWNpdHk6MTtjb2xvcjpibGFjaztmaWxsOnVybCgjcmFkaWFsR3JhZGllbnQzMDA0KTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC40O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO21hcmtlcjpub25lO21hcmtlci1zdGFydDpub25lO21hcmtlci1taWQ6bm9uZTttYXJrZXItZW5kOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgICBkPSJNIDkuOTEyNDE2OCwxOS43NTkzNDEgQyA5LjkxMjQxNjgsMTkuNzU5MzQxIDExLjAyODQwNCwyMy40ODA3MTcgMTAuMjY2MDc0LDI2LjQ5MzMyMSBDIDkuNTAzNzQ0OCwyOS41MDU5MjUgMTAuMDE4MTc4LDM0LjM1NTQzNCAxMC4wMTgxNzgsMzQuMzU1NDM0IEwgMTEuNDU2NTI3LDMzLjgwNzM2OCBDIDExLjQ1NjUyNywzMy44MDczNjggMTAuODY2NDI2LDMwLjE3MzkwNiAxMS42ODAyODgsMjYuNjcwMDk4IEMgMTIuNDk0MTUsMjMuMTY2MjkgMTEuMzI2NzQ1LDE5Ljc2MDI1NSAxMS4zMjY3NDUsMTkuNzYwMjU1IEwgOS45MTI0MTY4LDE5Ljc1OTM0MSB6ICIKICAgICAgICAgaWQ9InBhdGgzMDAyIgogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNzY2NzY2MiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NjY3NjYyIKICAgICAgICAgaWQ9InBhdGgyOTc2IgogICAgICAgICBkPSJNIDExLjY2NzE2LDE5LjcxNDA3NCBDIDExLjY2NzE2LDE5LjcxNDA3NCAxMi43ODMxNDYsMjMuNDM1NDUgMTIuMDIwODE3LDI2LjQ0ODA1NCBDIDExLjI1ODQ4OCwyOS40NjA2NTggOC42MTc4NDEsMzEuNzY0NDkgOC42MTc4NDEsMzEuNzY0NDkgTCA5LjgyNjAzNzgsMzMuNzMwMjIgQyA5LjgyNjAzNzgsMzMuNzMwMjIgMTIuNjIxMTY4LDMwLjEyODYzOSAxMy40MzUwMywyNi42MjQ4MzEgQyAxNC4yNDg4OTIsMjMuMTIxMDIzIDEzLjA4MTQ4NywxOS43MTQ5ODggMTMuMDgxNDg3LDE5LjcxNDk4OCBMIDExLjY2NzE2LDE5LjcxNDA3NCB6ICIKICAgICAgICAgc3R5bGU9Im9wYWNpdHk6MTtjb2xvcjpibGFjaztmaWxsOnVybCgjcmFkaWFsR3JhZGllbnQyOTg0KTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC40O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO21hcmtlcjpub25lO21hcmtlci1zdGFydDpub25lO21hcmtlci1taWQ6bm9uZTttYXJrZXItZW5kOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIiAvPgogICAgICA8cGF0aAogICAgICAgICBzdHlsZT0ib3BhY2l0eToxO2NvbG9yOmJsYWNrO2ZpbGw6dXJsKCNyYWRpYWxHcmFkaWVudDMxMDcpO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjQ7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7bWFya2VyOm5vbmU7bWFya2VyLXN0YXJ0Om5vbmU7bWFya2VyLW1pZDpub25lO21hcmtlci1lbmQ6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZS1vcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGUiCiAgICAgICAgIGQ9Ik0gMjEuMTYzNDg3LDE5LjYxNDA3NCBDIDIxLjE2MzQ4NywxOS42MTQwNzQgMjIuMjc5NDczLDIzLjMzNTQ1IDIxLjUxNzE0NCwyNi4zNDgwNTQgQyAyMC43NTQ4MTUsMjkuMzYwNjU4IDIxLjI2OTI0OCwzNC4yMTAxNjcgMjEuMjY5MjQ4LDM0LjIxMDE2NyBMIDIyLjkyODU2NywzNC43NjY5NTUgQyAyMi45Mjg1NjcsMzQuNzY2OTU1IDIyLjExNzQ5NSwzMC4wMjg2MzkgMjIuOTMxMzU3LDI2LjUyNDgzMSBDIDIzLjc0NTIxOSwyMy4wMjEwMjMgMjIuNTc3ODE0LDE5LjYxNDk4OCAyMi41Nzc4MTQsMTkuNjE0OTg4IEwgMjEuMTYzNDg3LDE5LjYxNDA3NCB6ICIKICAgICAgICAgaWQ9InBhdGgzMTA1IgogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNzY2NzY2MiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NjY3NjYyIKICAgICAgICAgaWQ9InBhdGgzMTMzIgogICAgICAgICBkPSJNIDM1LjE2MzQ4NywxOS42MTQwNzQgQyAzNS4xNjM0ODcsMTkuNjE0MDc0IDM2LjI3OTQ3MywyMy4zMzU0NSAzNS41MTcxNDQsMjYuMzQ4MDU0IEMgMzQuNzU0ODE1LDI5LjM2MDY1OCAzNi41NTA4NzksMzMuNTAzMDYgMzYuNTUwODc5LDMzLjUwMzA2IEwgMzguMDc3NjE1LDMyLjI5MjA4MiBDIDM4LjA3NzYxNSwzMi4yOTIwODIgMzYuMTE3NDk1LDMwLjAyODYzOSAzNi45MzEzNTcsMjYuNTI0ODMxIEMgMzcuNzQ1MjE5LDIzLjAyMTAyMyAzNi41Nzc4MTQsMTkuNjE0OTg4IDM2LjU3NzgxNCwxOS42MTQ5ODggTCAzNS4xNjM0ODcsMTkuNjE0MDc0IHogIgogICAgICAgICBzdHlsZT0ib3BhY2l0eToxO2NvbG9yOmJsYWNrO2ZpbGw6dXJsKCNyYWRpYWxHcmFkaWVudDMxMzUpO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjQ7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7bWFya2VyOm5vbmU7bWFya2VyLXN0YXJ0Om5vbmU7bWFya2VyLW1pZDpub25lO21hcmtlci1lbmQ6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZS1vcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGUiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NjY3NjYyIKICAgICAgICAgaWQ9InBhdGgzMTI1IgogICAgICAgICBkPSJNIDMxLjE2MzQ4NywxOS42MTQwNzQgQyAzMS4xNjM0ODcsMTkuNjE0MDc0IDMyLjI3OTQ3MywyMy4zMzU0NSAzMS41MTcxNDQsMjYuMzQ4MDU0IEMgMzAuNzU0ODE1LDI5LjM2MDY1OCAzMS4yNjkyNDgsMzQuMjEwMTY3IDMxLjI2OTI0OCwzNC4yMTAxNjcgTCAzMi43OTU5ODQsMzQuMTQ4MjM3IEMgMzIuNzk1OTg0LDM0LjE0ODIzNyAzMi4xMTc0OTUsMzAuMDI4NjM5IDMyLjkzMTM1NywyNi41MjQ4MzEgQyAzMy43NDUyMTksMjMuMDIxMDIzIDMyLjU3NzgxNCwxOS42MTQ5ODggMzIuNTc3ODE0LDE5LjYxNDk4OCBMIDMxLjE2MzQ4NywxOS42MTQwNzQgeiAiCiAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjE7Y29sb3I6YmxhY2s7ZmlsbDp1cmwoI3JhZGlhbEdyYWRpZW50MzEyNyk7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuNDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjttYXJrZXI6bm9uZTttYXJrZXItc3RhcnQ6bm9uZTttYXJrZXItbWlkOm5vbmU7bWFya2VyLWVuZDpub25lO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgc3R5bGU9Im9wYWNpdHk6MTtjb2xvcjpibGFjaztmaWxsOnVybCgjcmFkaWFsR3JhZGllbnQzMTMxKTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC40O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO21hcmtlcjpub25lO21hcmtlci1zdGFydDpub25lO21hcmtlci1taWQ6bm9uZTttYXJrZXItZW5kOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgICBkPSJNIDMzLjE2MzQ4NywxOS42MTQwNzQgQyAzMy4xNjM0ODcsMTkuNjE0MDc0IDM0LjI3OTQ3MywyMy4zMzU0NSAzMy41MTcxNDQsMjYuMzQ4MDU0IEMgMzIuNzU0ODE1LDI5LjM2MDY1OCAzMi40NzM3NTMsMzQuMDMzMzkgMzIuNDczNzUzLDM0LjAzMzM5IEwgMzQuMjY1NjU0LDM0LjQ1NzU5NiBDIDM0LjI2NTY1NCwzNC40NTc1OTYgMzQuMTE3NDk1LDMwLjAyODYzOSAzNC45MzEzNTcsMjYuNTI0ODMxIEMgMzUuNzQ1MjE5LDIzLjAyMTAyMyAzNC41Nzc4MTQsMTkuNjE0OTg4IDM0LjU3NzgxNCwxOS42MTQ5ODggTCAzMy4xNjM0ODcsMTkuNjE0MDc0IHogIgogICAgICAgICBpZD0icGF0aDMxMjkiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NjY3NjYyIgLz4KICAgICAgPHBhdGgKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc2Njc2NjIgogICAgICAgICBpZD0icGF0aDMxMTciCiAgICAgICAgIGQ9Ik0gMjcuMTYzNDg3LDE5LjYxNDA3NCBDIDI3LjE2MzQ4NywxOS42MTQwNzQgMjguMjc5NDczLDIzLjMzNTQ1IDI3LjUxNzE0NCwyNi4zNDgwNTQgQyAyNi43NTQ4MTUsMjkuMzYwNjU4IDI4LjA2NDc0MywzMy45ODkxOTYgMjguMDY0NzQzLDMzLjk4OTE5NiBMIDI5LjcyNDA2MiwzMy4zMDg1NDggQyAyOS43MjQwNjIsMzMuMzA4NTQ4IDI4LjExNzQ5NSwzMC4wMjg2MzkgMjguOTMxMzU3LDI2LjUyNDgzMSBDIDI5Ljc0NTIxOSwyMy4wMjEwMjMgMjguNTc3ODE0LDE5LjYxNDk4OCAyOC41Nzc4MTQsMTkuNjE0OTg4IEwgMjcuMTYzNDg3LDE5LjYxNDA3NCB6ICIKICAgICAgICAgc3R5bGU9Im9wYWNpdHk6MTtjb2xvcjpibGFjaztmaWxsOnVybCgjcmFkaWFsR3JhZGllbnQzMTE5KTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC40O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO21hcmtlcjpub25lO21hcmtlci1zdGFydDpub25lO21hcmtlci1taWQ6bm9uZTttYXJrZXItZW5kOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIiAvPgogICAgICA8cGF0aAogICAgICAgICBzdHlsZT0ib3BhY2l0eToxO2NvbG9yOmJsYWNrO2ZpbGw6dXJsKCNyYWRpYWxHcmFkaWVudDMxMTUpO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjQ7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7bWFya2VyOm5vbmU7bWFya2VyLXN0YXJ0Om5vbmU7bWFya2VyLW1pZDpub25lO21hcmtlci1lbmQ6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZS1vcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGUiCiAgICAgICAgIGQ9Ik0gMjUuMTYzNDg3LDE5LjYxNDA3NCBDIDI1LjE2MzQ4NywxOS42MTQwNzQgMjYuMjc5NDczLDIzLjMzNTQ1IDI1LjUxNzE0NCwyNi4zNDgwNTQgQyAyNC43NTQ4MTUsMjkuMzYwNjU4IDI0LjE2NDM5NCwzNC4wNzc1ODQgMjQuMTY0Mzk0LDM0LjA3NzU4NCBMIDI1LjY5MTEzLDM0LjI4MDgxOSBDIDI1LjY5MTEzLDM0LjI4MDgxOSAyNi4xMTc0OTUsMzAuMDI4NjM5IDI2LjkzMTM1NywyNi41MjQ4MzEgQyAyNy43NDUyMTksMjMuMDIxMDIzIDI2LjU3NzgxNCwxOS42MTQ5ODggMjYuNTc3ODE0LDE5LjYxNDk4OCBMIDI1LjE2MzQ4NywxOS42MTQwNzQgeiAiCiAgICAgICAgIGlkPSJwYXRoMzExMyIKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc2Njc2NjIiAvPgogICAgICA8cGF0aAogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNzY2NzY2MiCiAgICAgICAgIGlkPSJwYXRoMzEwOSIKICAgICAgICAgZD0iTSAyMy4xNjM0ODcsMTkuNjE0MDc0IEMgMjMuMTYzNDg3LDE5LjYxNDA3NCAyNC4yNzk0NzMsMjMuMzM1NDUgMjMuNTE3MTQ0LDI2LjM0ODA1NCBDIDIyLjc1NDgxNSwyOS4zNjA2NTggMjMuMjY5MjQ4LDM0LjIxMDE2NyAyMy4yNjkyNDgsMzQuMjEwMTY3IEwgMjQuNzA3NTk2LDMzLjY2MjEwMSBDIDI0LjcwNzU5NiwzMy42NjIxMDEgMjQuMTE3NDk1LDMwLjAyODYzOSAyNC45MzEzNTcsMjYuNTI0ODMxIEMgMjUuNzQ1MjE5LDIzLjAyMTAyMyAyNC41Nzc4MTQsMTkuNjE0OTg4IDI0LjU3NzgxNCwxOS42MTQ5ODggTCAyMy4xNjM0ODcsMTkuNjE0MDc0IHogIgogICAgICAgICBzdHlsZT0ib3BhY2l0eToxO2NvbG9yOmJsYWNrO2ZpbGw6dXJsKCNyYWRpYWxHcmFkaWVudDMxMTEpO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjQ7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7bWFya2VyOm5vbmU7bWFya2VyLXN0YXJ0Om5vbmU7bWFya2VyLW1pZDpub25lO21hcmtlci1lbmQ6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZS1vcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGUiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjE7Y29sb3I6YmxhY2s7ZmlsbDp1cmwoI3JhZGlhbEdyYWRpZW50Mjk4OCk7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuNDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjttYXJrZXI6bm9uZTttYXJrZXItc3RhcnQ6bm9uZTttYXJrZXItbWlkOm5vbmU7bWFya2VyLWVuZDpub25lO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZSIKICAgICAgICAgZD0iTSAxMy4zMTM2MDgsMTkuNzE0MDc0IEMgMTMuMzEzNjA4LDE5LjcxNDA3NCAxNC40Mjk1OTQsMjMuNDM1NDUgMTMuNjY3MjY1LDI2LjQ0ODA1NCBDIDEyLjkwNDkzNiwyOS40NjA2NTggMTMuNDE5MzY5LDM0LjMxMDE2NyAxMy40MTkzNjksMzQuMzEwMTY3IEwgMTQuOTk5NTE3LDM0LjY5ODQyNiBDIDE0Ljk5OTUxNywzNC42OTg0MjYgMTQuMjY3NjE2LDMwLjEyODYzOSAxNS4wODE0NzgsMjYuNjI0ODMxIEMgMTUuODk1MzQsMjMuMTIxMDIzIDE0LjcyNzkzNSwxOS43MTQ5ODggMTQuNzI3OTM1LDE5LjcxNDk4OCBMIDEzLjMxMzYwOCwxOS43MTQwNzQgeiAiCiAgICAgICAgIGlkPSJwYXRoMjk4NiIKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc2Njc2NjIiAvPgogICAgICA8cGF0aAogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNzY2NzY2MiCiAgICAgICAgIGlkPSJwYXRoMjk5OCIKICAgICAgICAgZD0iTSAxOS40MTgwODMsMjAuNTIwMjU4IEMgMTkuNDE4MDgzLDIwLjUyMDI1OCAxOS42MTU3MTQsMjQuMTI5ODAxIDE5LjA2NDYzMywyNy4yNTQyMzggQyAxOC41MjQ4NjEsMzAuMzE0NTYgMjEuMzA2NDE3LDM0LjQ5Njc3MyAyMS4zMDY0MTcsMzQuNDk2NzczIEwgMjIuNzIxMTYzLDMzLjg2NDQzIEMgMjIuNzIxMTYzLDMzLjg2NDQzIDE5LjkyNjc2MiwzMS4yNDg3ODYgMjAuNTU4NzU5LDI3LjA3ODY5NSBDIDIxLjExNjQzMiwyMy4zOTkwMTUgMjAuODMyNDEsMjAuNTIxMTcyIDIwLjgzMjQxLDIwLjUyMTE3MiBMIDE5LjQxODA4MywyMC41MjAyNTggeiAiCiAgICAgICAgIHN0eWxlPSJvcGFjaXR5OjE7Y29sb3I6YmxhY2s7ZmlsbDp1cmwoI3JhZGlhbEdyYWRpZW50MzAwMCk7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuNDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjttYXJrZXI6bm9uZTttYXJrZXItc3RhcnQ6bm9uZTttYXJrZXItbWlkOm5vbmU7bWFya2VyLWVuZDpub25lO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc2Njc2NjIgogICAgICAgICBpZD0icGF0aDI5OTAiCiAgICAgICAgIGQ9Ik0gMTUuMTYzNDg3LDE5LjYxNDA3NCBDIDE1LjE2MzQ4NywxOS42MTQwNzQgMTYuMjc5NDczLDIzLjMzNTQ1IDE1LjUxNzE0NCwyNi4zNDgwNTQgQyAxNC43NTQ4MTUsMjkuMzYwNjU4IDE1LjI2OTI0OCwzNC4yMTAxNjcgMTUuMjY5MjQ4LDM0LjIxMDE2NyBMIDE2LjcwNzU5NiwzMy42NjIxMDEgQyAxNi43MDc1OTYsMzMuNjYyMTAxIDE2LjExNzQ5NSwzMC4wMjg2MzkgMTYuOTMxMzU3LDI2LjUyNDgzMSBDIDE3Ljc0NTIxOSwyMy4wMjEwMjMgMTYuNTc3ODE0LDE5LjYxNDk4OCAxNi41Nzc4MTQsMTkuNjE0OTg4IEwgMTUuMTYzNDg3LDE5LjYxNDA3NCB6ICIKICAgICAgICAgc3R5bGU9Im9wYWNpdHk6MTtjb2xvcjpibGFjaztmaWxsOnVybCgjcmFkaWFsR3JhZGllbnQyOTkyKTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC40O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO21hcmtlcjpub25lO21hcmtlci1zdGFydDpub25lO21hcmtlci1taWQ6bm9uZTttYXJrZXItZW5kOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIiAvPgogICAgICA8cGF0aAogICAgICAgICBzdHlsZT0ib3BhY2l0eToxO2NvbG9yOmJsYWNrO2ZpbGw6dXJsKCNyYWRpYWxHcmFkaWVudDI5OTYpO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjQ7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7bWFya2VyOm5vbmU7bWFya2VyLXN0YXJ0Om5vbmU7bWFya2VyLW1pZDpub25lO21hcmtlci1lbmQ6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZS1vcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGUiCiAgICAgICAgIGQ9Ik0gMTYuODE2MTI5LDIwLjQ3OTUxNSBDIDE2LjgxNjEyOSwyMC40Nzk1MTUgMTcuOTMyMTE1LDI0LjIwMDg5MSAxNy4xNjk3ODYsMjcuMjEzNDk1IEMgMTYuNDA3NDU3LDMwLjIyNjA5OSAxNC43MjY5ODgsMzEuODA0MzggMTQuNzI2OTg4LDMxLjgwNDM4IEwgMTUuOTY0OTU3LDMyLjkzOTgwNCBDIDE1Ljk2NDk1NywzMi45Mzk4MDQgMTcuNzcwMTM3LDMwLjg5NDA4IDE4LjU4Mzk5OSwyNy4zOTAyNzIgQyAxOS4zOTc4NjEsMjMuODg2NDY0IDE4LjIzMDQ1NiwyMC40ODA0MjkgMTguMjMwNDU2LDIwLjQ4MDQyOSBMIDE2LjgxNjEyOSwyMC40Nzk1MTUgeiAiCiAgICAgICAgIGlkPSJwYXRoMjk5NCIKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc2Njc2NjIiAvPgogICAgPC9nPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOndoaXRlO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjE7b3BhY2l0eTowLjYyODg2NTk4IgogICAgICAgZD0iTSA1LjQxNDY4MTEsMTkuMTIxNTQ4IEMgNS4zNjM0MjQ0LDE5LjEyMTQxNCA2LjI1MTQzMywzMS45Mzg2MiA2Ljk1Njk0NTksNDAuOTI3ODAzIEMgNy4xMzg5NTA4LDQzLjIzNTI2MiA3LjUwODg2MTksNDQuMTc0NDA5IDguOTQyMzA3Nyw0NC4xNzQ0MDkgQyAyMC43NTkxMzEsNDQuMTc0NDA5IDM3LjU1Mjk0Nyw0NC4yNjA1MDQgMzguMTI0Nzk0LDQ0LjI1ODQwNSBDIDQwLjg5MTI5OSw0NC4yNDgyNDYgNDAuODM5NTI0LDQzLjIyMDkxOSA0MS4wNjg2NDUsNDEuMDM4MTUxIEMgNDEuMTUyMDUzLDQwLjI0MzU0NiA0Mi42MDExNDcsMTkuMjEwOTIyIDQyLjU4NzMyMywxOS4yMTA5MjIgQyAzMi42ODYyNDUsMTkuMjEwOTIyIDE3LjY0Nzc5MSwxOS4xNTM1MTkgNS40MTQ2ODExLDE5LjEyMTU0OCB6ICIKICAgICAgIGlkPSJwYXRoMzc1IgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjc3Nzc3NzIgogICAgICAgaW5rc2NhcGU6cl9jeD0idHJ1ZSIKICAgICAgIGlua3NjYXBlOnJfY3k9InRydWUiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNjYuODAxNTE0IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjY2LjgwMTUxNCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50MzIzOSk7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMyMDRhODc7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Ik0gNy4xNjMyMzI1LDYuNTY4NzYgQyA2LjA5NjQ3MDIsNi41NzExOTcgNS4yMDM2NzM5LDYuNTk1ODcgNC43MTczNzQ1LDcuNjExNTkxIEMgNC42MzI4NTE3LDcuNzg4MTMyIDIuMDU2NDU4MiwxNC45NTMxODkgMS45MzI1OTI5LDE1LjIyNjQzNSBDIDAuODcyMTg0MjMsMTcuNTY1NjY1IDEuODUwMDk3OCwyMC41MTIzNTcgMy44OTgyNDY3LDIwLjQ5MjYyOCBDIDQuMjg3NzU0MywyMC40ODg5OTggNDQuMjU3MzQ2LDIwLjUxMDg5OSA0NC44NzcxNDQsMjAuNDkyNjI4IEMgNDYuNjIwNjM2LDIwLjQ0MjEzNCA0Ni44NDM3NDYsMTcuMDI5ODk3IDQ2LjA5MzE4NCwxNS40OTQ4ODkgQyA0Ni4wNTA2NjMsMTUuNDA3OTI3IDQyLjU2NzIyMyw3LjUxMzk0NiA0Mi40NzgzOCw3LjM3NDEyNSBDIDQyLjA2NzQ2Myw2Ljc0OTY4MyA0MS4xNDcyNTIsNi40NzYwMTUgNDAuNDYzNzA4LDYuNTAxNjQ2IEMgNDAuMzI5MDU1LDYuNTA2ODIxIDcuMjk2NDk4NSw2LjU2ODQ1NyA3LjE2MzIzMjUsNi41Njg3NiB6ICIKICAgICAgIGlkPSJwYXRoMTg0MSIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3Nzc3NzY3NzIgogICAgICAgaW5rc2NhcGU6cl9jeD0idHJ1ZSIKICAgICAgIGlua3NjYXBlOnJfY3k9InRydWUiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNjYuODAxNTE0IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjY2LjgwMTUxNCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0ib3BhY2l0eTowLjE0OTQ4NDU0O2NvbG9yOmJsYWNrO2ZpbGw6IzU1NTc1MztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC41O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDttYXJrZXI6bm9uZTttYXJrZXItc3RhcnQ6bm9uZTttYXJrZXItbWlkOm5vbmU7bWFya2VyLWVuZDpub25lO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZSIKICAgICAgIGQ9Ik0gNC43OTIyNSwyMC45MDIxNzYgTCA3LjI5MjE2OTIsMjAuOTAyMjY0IEwgOC4wNTgwMjA2LDQxLjUxMzEzOCBMIDcuMjk1NDc3MSw0NC41ODYzMjkgQyA2LjY4ODUzOCw0NC4wOTk4NzEgNi40MTY4MDE1LDQzLjM2MjAxMSA2LjI3OTIyOTUsNDIuNTIzNTI4IEwgNC43OTIyNSwyMC45MDIxNzYgeiAiCiAgICAgICBpZD0icGF0aDI5NTYiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjYyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI2Ni44MDE1MTQiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNjYuODAxNTE0IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJvcGFjaXR5OjAuNDI3ODM1MDU7Y29sb3I6YmxhY2s7ZmlsbDojZWVlZWVjO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO21hcmtlcjpub25lO21hcmtlci1zdGFydDpub25lO21hcmtlci1taWQ6bm9uZTttYXJrZXItZW5kOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgZD0iTSA4LjAzMzU2ODgsNDEuNjExNjgzIEwgNy4zMjEyNjU4LDQ0LjU0MDU2OCBDIDcuNzQ0MTI5MSw0NC43NjU0NjMgOC4wNTcwMTE4LDQ0Ljg1MjgyOSA4LjUxMjU0NzUsNDUuMDA3MTc0IEwgMzguNTM4NDI4LDQ0Ljk3ODQ3NyBDIDM5LjExNzM1LDQ0LjkzODg1NiAzOS42NjkwOTgsNDQuOTEyNjc4IDQwLjA1Mjc2Niw0NC44MDY4OTIgTCAzOC4wMDY5OSw0MS4zNzA4NzQgTCA4LjAzMzU2ODgsNDEuNjExNjgzIHogIgogICAgICAgaWQ9InBhdGgyOTU4IgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjY2NjIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjY2LjgwMTUxNCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI2Ni44MDE1MTQiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9Im9wYWNpdHk6MC4zNzExMzQwMjtjb2xvcjpibGFjaztmaWxsOiNlZWVlZWM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuNTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7bWFya2VyOm5vbmU7bWFya2VyLXN0YXJ0Om5vbmU7bWFya2VyLW1pZDpub25lO21hcmtlci1lbmQ6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZS1vcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGUiCiAgICAgICBkPSJNIDM4LjAwNjk5LDQxLjM3MDg3NCBMIDQwLjAxOTQ4OSw0NC44MTU3NjIgQyA0MC42Mzc2OTEsNDQuNTUyNTU3IDQxLjM0OTgzMSw0NC4wOTE5NDkgNDEuNjMwOTEyLDQyLjk2MTg2NCBMIDQzLjEzOTMxMSwyMC45NDUyMSBMIDM5LjY5MjExLDIwLjk0Mjk4NCBMIDM4LjAwNjk5LDQxLjM3MDg3NCB6ICIKICAgICAgIGlkPSJwYXRoMjk2MCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2NjIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjY2LjgwMTUxNCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI2Ni44MDE1MTQiIC8+CiAgICA8cGF0aAogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6b2Zmc2V0IgogICAgICAgaW5rc2NhcGU6cmFkaXVzPSItMS4wNDU0MTAzIgogICAgICAgaW5rc2NhcGU6b3JpZ2luYWw9Ik0gNDAuNDYyODkxIDYuNTAxOTUzMSBDIDQwLjMyODIzOCA2LjUwNzEyODEgNy4yOTczMjg1IDYuNTY4MDU2NCA3LjE2NDA2MjUgNi41NjgzNTk0IEMgNi4wOTczMDAyIDYuNTcwNzk2NCA1LjIwMzA5NjMgNi41OTU2MDcxIDQuNzE2Nzk2OSA3LjYxMTMyODEgQyA0LjYzMjI3NDEgNy43ODc4NjkxIDIuMDU1NTA1OSAxNC45NTMzMTYgMS45MzE2NDA2IDE1LjIyNjU2MiBDIDAuODcxMjMxOTYgMTcuNTY1NzkzIDEuODUwMjg4NiAyMC41MTE5MTcgMy44OTg0Mzc1IDIwLjQ5MjE4OCBDIDQuMjg3OTQ1MSAyMC40ODg1NTcgNDQuMjU3MTU1IDIwLjUxMDQ1OCA0NC44NzY5NTMgMjAuNDkyMTg4IEMgNDYuNjIwNDQ1IDIwLjQ0MTY5MyA0Ni44NDQzMTIgMTcuMDI5MTQ5IDQ2LjA5Mzc1IDE1LjQ5NDE0MSBDIDQ2LjA1MTIyOSAxNS40MDcxNzkgNDIuNTY3MzU5IDcuNTE0ODIxIDQyLjQ3ODUxNiA3LjM3NSBDIDQyLjA2NzU5OSA2Ljc1MDU1OCA0MS4xNDY0MzUgNi40NzYzMjIxIDQwLjQ2Mjg5MSA2LjUwMTk1MzEgeiAiCiAgICAgICB4bGluazpocmVmPSIjcGF0aDE4NDEiCiAgICAgICBzdHlsZT0iZmlsbDpub25lO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTp1cmwoI2xpbmVhckdyYWRpZW50MzI0Nyk7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MTtvcGFjaXR5OjAuMzg2NTk3OTQiCiAgICAgICBpZD0icGF0aDMyMzciCiAgICAgICBpbmtzY2FwZTpocmVmPSIjcGF0aDE4NDEiCiAgICAgICBkPSJNIDQwLjM3NSw3LjUzMTI1IEMgNDAuMzA3Nzg2LDcuNTMxNTEyNiA0MC4xODc0MjQsNy41NjIxNDg1IDQwLjA2MjUsNy41NjI1IEMgMzkuODEyNjUyLDcuNTYzMjAzMSAzOS40NTg0NTYsNy41NjE0NzIyIDM5LDcuNTYyNSBDIDM4LjA4MzA4OCw3LjU2NDU1NTUgMzYuNzc4Mjc1LDcuNTU5NDYwOCAzNS4yMTg3NSw3LjU2MjUgQyAzMi4wOTk3LDcuNTY4NTc4NSAyNy45NTk4NDMsNy41ODYyNzk4IDIzLjgxMjUsNy41OTM3NSBDIDE1LjUxNzgxNCw3LjYwODY5MDMgNy4xNzU1MjkxLDcuNTkzNzA2MiA3LjE1NjI1LDcuNTkzNzUgQyA2LjYzNjY5MzYsNy41OTQ5MzcgNi4yNjE1NjA4LDcuNjUyNDI0NiA2LjA2MjUsNy43MTg3NSBDIDUuODYzNDM5Miw3Ljc4NTA3NTQgNS43OTUzNjIyLDcuNzcxOTQgNS42NTYyNSw4LjA2MjUgQyA1LjcyNDQyMzQsNy45MjAxMDcyIDUuNjc3OTc4Myw4LjAzNjM4NTIgNS42NTYyNSw4LjA5Mzc1IEMgNS42MzQ1MjE3LDguMTUxMTE0OCA1LjYwMTMyODMsOC4yMzg3NTEzIDUuNTYyNSw4LjM0Mzc1IEMgNS40ODQ4NDMzLDguNTUzNzQ3NCA1LjM3NzI2NzMsOC44NzAwMDM4IDUuMjUsOS4yMTg3NSBDIDQuOTk1NDY1NCw5LjkxNjI0MjMgNC42NDcxNjIsMTAuODI4ODEgNC4zMTI1LDExLjc1IEMgMy45Nzc4MzgsMTIuNjcxMTkgMy42NjY4MDAyLDEzLjU5OTkxNSAzLjQwNjI1LDE0LjMxMjUgQyAzLjI3NTk3NDksMTQuNjY4NzkzIDMuMTQ2MDI4NCwxNC45NjI1NDUgMy4wNjI1LDE1LjE4NzUgQyAyLjk3ODk3MTYsMTUuNDEyNDU1IDIuOTYzMTYwMSwxNS40NjE3NjkgMi44NzUsMTUuNjU2MjUgQyAyLjQ2MzM0NzgsMTYuNTY0MzQzIDIuNDgxMDk4NCwxNy42NTQ4MTQgMi43NSwxOC40MDYyNSBDIDMuMDE4OTAxNiwxOS4xNTc2ODYgMy4zODc2MjIxLDE5LjQ3Mzc0NiAzLjkwNjI1LDE5LjQ2ODc1IEMgNC4wNDMxMTY3LDE5LjQ2NzQ3NCA0LjYxODc1OTEsMTkuNDY4NTM0IDUuNzUsMTkuNDY4NzUgQyA2Ljg4MTI0MDksMTkuNDY4OTY2IDguNDY5NjU3LDE5LjQ2ODEyMSAxMC4zNzUsMTkuNDY4NzUgQyAxNC4xODU2ODYsMTkuNDcwMDA3IDE5LjI1NDU1MSwxOS40NjczODEgMjQuMzEyNSwxOS40Njg3NSBDIDI5LjM3MDQ0OSwxOS40NzAxMTkgMzQuNDQyMTEsMTkuNDY5MzIzIDM4LjI4MTI1LDE5LjQ2ODc1IEMgNDAuMjAwODIsMTkuNDY4NDY0IDQxLjc4NTM2MywxOS40Njk5MDYgNDIuOTM3NSwxOS40Njg3NSBDIDQ0LjA4OTYzNywxOS40Njc1OTQgNDQuOTM0NzA2LDE5LjQ2NjA2OSA0NC44NDM3NSwxOS40Njg3NSBDIDQ0LjkzOTQ3OCwxOS40NjU5NzggNDQuOTQ0ODc2LDE5LjQ3NDczNyA0NS4wNjI1LDE5LjMxMjUgQyA0NS4xODAxMjQsMTkuMTUwMjYzIDQ1LjMwMzQyNSwxOC43OTE5MTkgNDUuMzc1LDE4LjM3NSBDIDQ1LjUxODE1LDE3LjU0MTE2MiA0NS4zNzg5OTQsMTYuNDI0MjkzIDQ1LjE1NjI1LDE1Ljk2ODc1IEMgNDUuMDg4MTgsMTUuODI5NTM5IDQ1LjEyMjA5NiwxNS44NzYwNTggNDUuMDkzNzUsMTUuODEyNSBDIDQ1LjA2NTQwNCwxNS43NDg5NDIgNDUuMDE4NzMyLDE1LjY3NDk5OCA0NC45Njg3NSwxNS41NjI1IEMgNDQuODY4Nzg2LDE1LjMzNzUwNSA0NC43Mjk5NjIsMTUuMDAyNDY4IDQ0LjU2MjUsMTQuNjI1IEMgNDQuMjI3NTc2LDEzLjg3MDA2NSA0My43ODg0OTYsMTIuODc2MDcyIDQzLjM0Mzc1LDExLjg3NSBDIDQyLjg5OTAwNCwxMC44NzM5MjggNDIuNDY0OTMsOS44ODQ3ODk3IDQyLjEyNSw5LjEyNSBDIDQxLjk1NTAzNSw4Ljc0NTEwNTIgNDEuNzkwMTcyLDguNDEzODM4MSA0MS42ODc1LDguMTg3NSBDIDQxLjYzNjE2NCw4LjA3NDMzMSA0MS41OTA0MDYsNy45OTc1MTc5IDQxLjU2MjUsNy45Mzc1IEMgNDEuNDM5NTc0LDcuNzgzMjU5NSA0MC44NTg3NDgsNy41MTc3OTc5IDQwLjUsNy41MzEyNSBDIDQwLjQwMDAxNyw3LjUzNTA5MjYgNDAuNDU2NzMyLDcuNTMxMTM2NSA0MC40Mzc1LDcuNTMxMjUgQyA0MC40MTgyNjgsNy41MzEzNjM1IDQwLjQwODYwNyw3LjUzMTExODcgNDAuMzc1LDcuNTMxMjUgeiAiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNjYuODAxNTE0IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjY2LjgwMTUxNCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0ib3BhY2l0eTowLjgyOTg5NjkzO2NvbG9yOmJsYWNrO2ZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDI5NzApO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO21hcmtlcjpub25lO21hcmtlci1zdGFydDpub25lO21hcmtlci1taWQ6bm9uZTttYXJrZXItZW5kOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgZD0iTSA4LDEwIEwgNy4zNzUsMTIgTCAzOS4zNzUwMDEsMTIgTCAzOC41OTMxNDgsMTAuMDc1NDQgTCA4LDEwIHogIgogICAgICAgaWQ9InBhdGgyOTYyIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjYyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI2Ni44MDE1MTQiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNjYuODAxNTE0IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJjb2xvcjpibGFjaztmaWxsOnVybCgjbGluZWFyR3JhZGllbnQzMDk3KTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6Izg4OGE4NTtzdHJva2Utd2lkdGg6MS4wMDAwMDA4MztzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjttYXJrZXI6bm9uZTttYXJrZXItc3RhcnQ6bm9uZTttYXJrZXItbWlkOm5vbmU7bWFya2VyLWVuZDpub25lO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgZD0iTSA5Ljg1MzU0ODgsMS41MDAwMDE0IEwgMzcuMTY3MzE2LDEuNTAwMDAxNCBDIDM3LjM2MzE4NCwxLjUwMDAwMTQgMzcuNTIwODY5LDEuNjU3Njg2MyAzNy41MjA4NjksMS44NTM1NTUgTCAzNy41MjA4NjksMTEuNTAwMDAzIEMgMzcuNTIwODY5LDExLjUwMDAwMyA5LjQ5OTk5NTIsMTEuNTAwMDAzIDkuNDk5OTk1MiwxMS41MDAwMDMgTCA5LjQ5OTk5NTIsMS44NTM1NTUgQyA5LjQ5OTk5NTIsMS42NTc2ODYzIDkuNjU3NjgwMSwxLjUwMDAwMTQgOS44NTM1NDg4LDEuNTAwMDAxNCB6ICIKICAgICAgIGlkPSJyZWN0MzAwNiIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2NjYyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI2Ni44MDE1MTQiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNjYuODAxNTE0IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJvcGFjaXR5OjAuNjI4ODY1OTg7Y29sb3I6YmxhY2s7ZmlsbDpub25lO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTp3aGl0ZTtzdHJva2Utd2lkdGg6MS4wMDAwMDAyNDtzdHJva2UtbGluZWNhcDpzcXVhcmU7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO21hcmtlcjpub25lO21hcmtlci1zdGFydDpub25lO21hcmtlci1taWQ6bm9uZTttYXJrZXItZW5kOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgZD0iTSAxMC40OTk5OTgsMTAuNTIyNTk0IEwgMTAuNDk5OTk4LDIuNTAwMDAxMSBMIDM2LjUwNDM4MSwyLjUwMDAwMTEgTCAzNi41MDQzODEsMTAuNjExNzMzIgogICAgICAgaWQ9InBhdGgzMTAzIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjY2LjgwMTUxNCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI2Ni44MDE1MTQiIC8+CiAgICA8cGF0aAogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC44MTQzODQsMCwwLDAuNzk2Mzc5LDcuNTgzNzIsMy4yMTI2OTQpIgogICAgICAgZD0iTSA0MyAxNSBBIDIuNSAxLjI1IDAgMSAxICAzOCwxNSBBIDIuNSAxLjI1IDAgMSAxICA0MyAxNSB6IgogICAgICAgc29kaXBvZGk6cnk9IjEuMjUiCiAgICAgICBzb2RpcG9kaTpyeD0iMi41IgogICAgICAgc29kaXBvZGk6Y3k9IjE1IgogICAgICAgc29kaXBvZGk6Y3g9IjQwLjUiCiAgICAgICBpZD0icGF0aDMxMzkiCiAgICAgICBzdHlsZT0ib3BhY2l0eToxO2NvbG9yOmJsYWNrO2ZpbGw6I2MwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I2E0MDAwMDtzdHJva2Utd2lkdGg6MS4yNDE3MjQ3MztzdHJva2UtbGluZWNhcDpzcXVhcmU7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO21hcmtlcjpub25lO21hcmtlci1zdGFydDpub25lO21hcmtlci1taWQ6bm9uZTttYXJrZXItZW5kOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgc29kaXBvZGk6dHlwZT0iYXJjIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjY2LjgwMTUxNCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI2Ni44MDE1MTQiIC8+CiAgICA8cGF0aAogICAgICAgc29kaXBvZGk6dHlwZT0iYXJjIgogICAgICAgc3R5bGU9Im9wYWNpdHk6MTtjb2xvcjpibGFjaztmaWxsOiNlZjI5Mjk7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOnVybCgjbGluZWFyR3JhZGllbnQzMTQ3KTtzdHJva2Utd2lkdGg6MS4yNDE3MjQ3MztzdHJva2UtbGluZWNhcDpzcXVhcmU7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO21hcmtlcjpub25lO21hcmtlci1zdGFydDpub25lO21hcmtlci1taWQ6bm9uZTttYXJrZXItZW5kOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgaWQ9InBhdGgzMTM3IgogICAgICAgc29kaXBvZGk6Y3g9IjQwLjUiCiAgICAgICBzb2RpcG9kaTpjeT0iMTUiCiAgICAgICBzb2RpcG9kaTpyeD0iMi41IgogICAgICAgc29kaXBvZGk6cnk9IjEuMjUiCiAgICAgICBkPSJNIDQzIDE1IEEgMi41IDEuMjUgMCAxIDEgIDM4LDE1IEEgMi41IDEuMjUgMCAxIDEgIDQzIDE1IHoiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjgxNDM4NCwwLDAsMC43OTYzNzksNy41ODM3MiwyLjU0OTc4NCkiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNjYuODAxNTE0IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjY2LjgwMTUxNCIgLz4KICAgIDxyZWN0CiAgICAgICBzdHlsZT0ib3BhY2l0eTowLjI3MzE5NTg4O2NvbG9yOmJsYWNrO2ZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDMxNjUpO2ZpbGwtb3BhY2l0eToxLjA7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuNDAwMDAwMDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7bWFya2VyOm5vbmU7bWFya2VyLXN0YXJ0Om5vbmU7bWFya2VyLW1pZDpub25lO21hcmtlci1lbmQ6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZS1vcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGUiCiAgICAgICBpZD0icmVjdDMxNTciCiAgICAgICB3aWR0aD0iMjkiCiAgICAgICBoZWlnaHQ9IjUuMzEyNSIKICAgICAgIHg9IjkiCiAgICAgICB5PSI2LjY4NzUiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNjYuODAxNTE0IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjY2LjgwMTUxNCIgLz4KICAgIDxyZWN0CiAgICAgICBzdHlsZT0ib3BhY2l0eTowLjEzOTE3NTI2O2NvbG9yOmJsYWNrO2ZpbGw6YmxhY2s7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuNDAwMDAwMDE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7bWFya2VyOm5vbmU7bWFya2VyLXN0YXJ0Om5vbmU7bWFya2VyLW1pZDpub25lO21hcmtlci1lbmQ6bm9uZTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZS1vcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGUiCiAgICAgICBpZD0icmVjdDMxNjciCiAgICAgICB3aWR0aD0iMjMiCiAgICAgICBoZWlnaHQ9IjEiCiAgICAgICB4PSIxMiIKICAgICAgIHk9IjQiCiAgICAgICByeD0iMC41IgogICAgICAgcnk9IjAuNSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI2Ni44MDE1MTQiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNjYuODAxNTE0IiAvPgogICAgPHJlY3QKICAgICAgIHk9IjYiCiAgICAgICB4PSIxMiIKICAgICAgIGhlaWdodD0iMSIKICAgICAgIHdpZHRoPSIxNSIKICAgICAgIGlkPSJyZWN0MzE2OSIKICAgICAgIHN0eWxlPSJvcGFjaXR5OjAuMTM5MTc1MjY7Y29sb3I6YmxhY2s7ZmlsbDpibGFjaztmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC40MDAwMDAwMTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjttYXJrZXI6bm9uZTttYXJrZXItc3RhcnQ6bm9uZTttYXJrZXItbWlkOm5vbmU7bWFya2VyLWVuZDpub25lO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZSIKICAgICAgIHJ4PSIwLjUiCiAgICAgICByeT0iMC41IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjY2LjgwMTUxNCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI2Ni44MDE1MTQiIC8+CiAgICA8cmVjdAogICAgICAgc3R5bGU9Im9wYWNpdHk6MC4xMzkxNzUyNjtjb2xvcjpibGFjaztmaWxsOmJsYWNrO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjQwMDAwMDAxO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO21hcmtlcjpub25lO21hcmtlci1zdGFydDpub25lO21hcmtlci1taWQ6bm9uZTttYXJrZXItZW5kOm5vbmU7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgaWQ9InJlY3QzMTcxIgogICAgICAgd2lkdGg9IjE5IgogICAgICAgaGVpZ2h0PSIxIgogICAgICAgeD0iMTIiCiAgICAgICB5PSI4IgogICAgICAgcng9IjAuNSIKICAgICAgIHJ5PSIwLjUiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNjYuODAxNTE0IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjY2LjgwMTUxNCIgLz4KICA8L2c+Cjwvc3ZnPgo=
"""
Center_Bbox_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjY0cHgiCiAgIGhlaWdodD0iNjRweCIKICAgaWQ9InN2ZzI4NjAiCiAgIHNvZGlwb2RpOnZlcnNpb249IjAuMzIiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuMCByMTUyOTkiCiAgIHNvZGlwb2RpOmRvY25hbWU9IkNlbnRlck9mQkJveC5zdmciCiAgIGlua3NjYXBlOm91dHB1dF9leHRlbnNpb249Im9yZy5pbmtzY2FwZS5vdXRwdXQuc3ZnLmlua3NjYXBlIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlua3NjYXBlOmV4cG9ydC1maWxlbmFtZT0iQzpcQ2FkXFByb2dldHRpX0tcM0QtRnJlZUNhZC10b29sc1xpY29ucy1uZXdcQ2VudGVyQkJveC5wbmciCiAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI2LjU1OTE2MDIiCiAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI2LjU1OTE2MDIiPgogIDxkZWZzCiAgICAgaWQ9ImRlZnMyODYyIj4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDE0NyI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNkM2Q3Y2Y7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A0MTQ5IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNDE1MSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQxMjEiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojODg4YTg1O3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNDEyMyIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2JhYmRiNjtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDQxMjUiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMzc3Ij4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzMzc5IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmYWZmMmI7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDMzODEiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmYWEwMDtzdG9wLW9wYWNpdHk6MTsiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDMyIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3o9IjY0IDogMzIgOiAxIgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjMyIDogMjEuMzMzMzMzIDogMSIKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTI4NjgiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDMzNzctMSIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDMwOTUtNiIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjAzNTI3ODUsMC4yMzkxMTAwOCwtMC40OTEyMTk5MywyLjEyNjg0MjQsLTgzLjAyMDU2NiwtMjEwLjE5NTk1KSIKICAgICAgIGN4PSIxMzUuMzgzMzMiCiAgICAgICBjeT0iOTcuMzY5NTY4IgogICAgICAgZng9IjEzNS4zODMzMyIKICAgICAgIGZ5PSI5Ny4zNjk1NjgiCiAgICAgICByPSIxOS40Njc0MzYiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMzNzctMSI+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMzM3OS0xIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmYWZmMmI7c3RvcC1vcGFjaXR5OjE7IiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDMzODEtMCIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZhYTAwO3N0b3Atb3BhY2l0eToxOyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDMxNDQiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQ0MTA4IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDAuNjk4NTI5NCwwLDIwMi44Mjg2MykiCiAgICAgICBjeD0iMjI1LjI2NDAyIgogICAgICAgY3k9IjY3Mi43OTczNiIKICAgICAgIGZ4PSIyMjUuMjY0MDIiCiAgICAgICBmeT0iNjcyLjc5NzM2IgogICAgICAgcj0iMzQuMzQ1MTg4IiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMTQ0Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzMTQ2IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eTowOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDMxNDgiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzOTYwIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDA0MSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgeDE9IjM3Ljc1ODE3MSIKICAgICAgIHkxPSI1Ny4zMDEzMjciCiAgICAgICB4Mj0iMjEuODYwNDYyIgogICAgICAgeTI9IjIyLjYxNTQxMiIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mzk2MCI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNiYWJkYjY7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzOTYyIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzk2NCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8ZmlsdGVyCiAgICAgICBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiCiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBpZD0iZmlsdGVyMzk4MCIKICAgICAgIHg9Ii0wLjI5Mjk0MTMzIgogICAgICAgd2lkdGg9IjEuNTg1ODgyNyIKICAgICAgIHk9Ii0wLjQ0MjQyMDU3IgogICAgICAgaGVpZ2h0PSIxLjg4NDg0MTEiPgogICAgICA8ZmVHYXVzc2lhbkJsdXIKICAgICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgICBzdGREZXZpYXRpb249IjQuNDg2MjMwNCIKICAgICAgICAgaWQ9ImZlR2F1c3NpYW5CbHVyMzk4MiIgLz4KICAgIDwvZmlsdGVyPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0MTIxIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NDEyNyIKICAgICAgIHgxPSIxMDAuNTM4MjgiCiAgICAgICB5MT0iMTIzLjIwNTg2IgogICAgICAgeDI9IjkwLjI3MDgyOCIKICAgICAgIHkyPSI5My43OTQxMzYiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTgwLC04MCkiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQxNDciCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MTUzIgogICAgICAgeDE9IjEyOC4yMjc2MyIKICAgICAgIHkxPSIxMjMuNTY5NDMiCiAgICAgICB4Mj0iMTIzLjUwMDE4IgogICAgICAgeTI9Ijg4LjI1MzM3MiIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgtODAsLTgwKSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzgzNi0wLTYtOTItNC02IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzgwMS0xLTMtMTQtMC0zIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICB4MT0iLTE4IgogICAgICAgeTE9IjE4IgogICAgICAgeDI9Ii0yMiIKICAgICAgIHkyPSI1IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQyODU3MDE5LDEuMTk0MTM0OWUtOCwwLDAuNDI4NTcyOTcsNDEuMTAzOTA0LDI0LjIxMTQxMSkiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4MzYtMC02LTkyLTQtNiI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNhNDAwMDA7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzODM4LTItNy0wNi04LTciIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNlZjI5Mjk7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AzODQwLTUtNS04LTctNSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgPC9kZWZzPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSI3LjIwODAwNzgiCiAgICAgaW5rc2NhcGU6Y3g9IjcuODY1ODk2NiIKICAgICBpbmtzY2FwZTpjeT0iMzEuMjE0NDIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Z3JpZC1iYm94PSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTUzNiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI4MDEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii04IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOCIKICAgICBpbmtzY2FwZTpvYmplY3QtcGF0aHM9ImZhbHNlIgogICAgIGlua3NjYXBlOnNuYXAtbm9kZXM9InRydWUiCiAgICAgaW5rc2NhcGU6b2JqZWN0LW5vZGVzPSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6c25hcC1nbG9iYWw9ImZhbHNlIj4KICAgIDxpbmtzY2FwZTpncmlkCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBpZD0iZ3JpZDMwMDQiCiAgICAgICBlbXBzcGFjaW5nPSIyIgogICAgICAgdmlzaWJsZT0idHJ1ZSIKICAgICAgIGVuYWJsZWQ9InRydWUiCiAgICAgICBzbmFwdmlzaWJsZWdyaWRsaW5lc29ubHk9InRydWUiIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhMjg2NSI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPltZb3JpayB2YW4gSGF2cmVdPC9kYzp0aXRsZT4KICAgICAgICAgIDwvY2M6QWdlbnQ+CiAgICAgICAgPC9kYzpjcmVhdG9yPgogICAgICAgIDxkYzp0aXRsZT5BcmNoX1NwYWNlX1RyZWU8L2RjOnRpdGxlPgogICAgICAgIDxkYzpkYXRlPjIwMTMtMDctMTY8L2RjOmRhdGU+CiAgICAgICAgPGRjOnJlbGF0aW9uPmh0dHA6Ly93d3cuZnJlZWNhZHdlYi5vcmcvd2lraS9pbmRleC5waHA/dGl0bGU9QXJ0d29yazwvZGM6cmVsYXRpb24+CiAgICAgICAgPGRjOnB1Ymxpc2hlcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPkZyZWVDQUQ8L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOnB1Ymxpc2hlcj4KICAgICAgICA8ZGM6aWRlbnRpZmllcj5GcmVlQ0FEL3NyYy9Nb2QvQXJjaC9SZXNvdXJjZXMvaWNvbnMvQXJjaF9TcGFjZV9UcmVlLnN2ZzwvZGM6aWRlbnRpZmllcj4KICAgICAgICA8ZGM6cmlnaHRzPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+RnJlZUNBRCBMR1BMMis8L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOnJpZ2h0cz4KICAgICAgICA8Y2M6bGljZW5zZT5odHRwczovL3d3dy5nbnUub3JnL2NvcHlsZWZ0L2xlc3Nlci5odG1sPC9jYzpsaWNlbnNlPgogICAgICAgIDxkYzpjb250cmlidXRvcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPlthZ3J5c29uXSBBbGV4YW5kZXIgR3J5c29uPC9kYzp0aXRsZT4KICAgICAgICAgIDwvY2M6QWdlbnQ+CiAgICAgICAgPC9kYzpjb250cmlidXRvcj4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpZD0ibGF5ZXIxIgogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOm5vbmUiCiAgICAgICBkPSJNIDUsNTMgMjksNDMgNTksNDkgMzksNTkgeiIKICAgICAgIGlkPSJwYXRoMzAwNiIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjQ5LjU0ODc5OCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI0OS41NDg3OTgiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDQxMjcpO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIgogICAgICAgZD0iTSAyOSw0IDUsMTQgNSw1MyAyOSw0MyB6IgogICAgICAgaWQ9InBhdGgzODg2IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI0OS41NDg3OTgiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNDkuNTQ4Nzk4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOnVybCgjbGluZWFyR3JhZGllbnQ0MTUzKTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIKICAgICAgIGQ9Im0gMjksNCAwLDM5IDMwLDYgMCwtMzkgeiIKICAgICAgIGlkPSJwYXRoMzg4OCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNDkuNTQ4Nzk4IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjQ5LjU0ODc5OCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojYmFiZGI2O3N0cm9rZS13aWR0aDoyIgogICAgICAgZD0iTSAyOC4wMjMwMyw1LjQ4NTU3MSA2LDE0LjY1MzE2NCA2LDUxLjUyMDI1IDI4LjAyMzAzLDQyLjM1MjY2IHoiCiAgICAgICBpZD0icGF0aDM4ODYtNCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjQ5LjU0ODc5OCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI0OS41NDg3OTgiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MiIKICAgICAgIGQ9Im0gMzAuMDc1Niw1LjE5MDkzOCAtMC4wMDYsMzYuOTk4ODEyIDI3LjkxODk4LDUuNDQ1MDYgMC4wNzYzLC0zNi43ODcyMjMgeiIKICAgICAgIGlkPSJwYXRoMzg4OC03IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2MiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNDkuNTQ4Nzk4IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjQ5LjU0ODc5OCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO3N0cm9rZTpub25lIgogICAgICAgZD0iTSA1LDE0IDI5LDQgNTksMTAgMzksMjAgeiIKICAgICAgIGlkPSJwYXRoMzAwNi0zIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2MiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNDkuNTQ4Nzk4IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjQ5LjU0ODc5OCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMmUzNDM2O3N0cm9rZS13aWR0aDo2O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTo2LCAxMjtzdHJva2UtZGFzaG9mZnNldDozLjYwMDAwMDAwMDAwMDAwMDA5IgogICAgICAgZD0ibSA1LDUzIDM0LDYiCiAgICAgICBpZD0icGF0aDM5MTciCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjQ5LjU0ODc5OCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI0OS41NDg3OTgiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzJlMzQzNjtzdHJva2Utd2lkdGg6NjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6NiwgMTI7c3Ryb2tlLWRhc2hvZmZzZXQ6My42IgogICAgICAgZD0ibSAyNSw0NCAzNCw1IgogICAgICAgaWQ9InBhdGgzOTE3LTIiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI0OS41NDg3OTgiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNDkuNTQ4Nzk4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMyZTM0MzY7c3Ryb2tlLXdpZHRoOjY7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5OjYsIDEyO3N0cm9rZS1kYXNob2Zmc2V0OjMuNjAwMDAwMDAwMDAwMDAwMDkiCiAgICAgICBkPSJtIDI1LDUgMzQsNiIKICAgICAgIGlkPSJwYXRoMzkxNy0xIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI0OS41NDg3OTgiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNDkuNTQ4Nzk4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMyZTM0MzY7c3Ryb2tlLXdpZHRoOjY7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5OjYsIDEyO3N0cm9rZS1kYXNob2Zmc2V0OjMuNiIKICAgICAgIGQ9Im0gNTksMTEgMCwzOCIKICAgICAgIGlkPSJwYXRoMzkxNy0yNyIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjQ5LjU0ODc5OCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI0OS41NDg3OTgiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzJlMzQzNjtzdHJva2Utd2lkdGg6NjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6NiwgMTI7c3Ryb2tlLWRhc2hvZmZzZXQ6My42MDAwMDAwMDAwMDAwMDAwOSIKICAgICAgIGQ9Ik0gNDAsNTkgNTksNDkiCiAgICAgICBpZD0icGF0aDM5MTctMCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjQ5LjU0ODc5OCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI0OS41NDg3OTgiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzJlMzQzNjtzdHJva2Utd2lkdGg6NjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6NiwgMTI7c3Ryb2tlLWRhc2hvZmZzZXQ6My42MDAwMDAwMDAwMDAwMDAwOSIKICAgICAgIGQ9Ik0gNSwxNSAyNSw1IgogICAgICAgaWQ9InBhdGgzOTE3LTkiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI0OS41NDg3OTgiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNDkuNTQ4Nzk4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMyZTM0MzY7c3Ryb2tlLXdpZHRoOjY7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5OjYsIDEyO3N0cm9rZS1kYXNob2Zmc2V0OjMuNiIKICAgICAgIGQ9Ik0gNSwxNSA1LDUzIgogICAgICAgaWQ9InBhdGgzOTE3LTMiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI0OS41NDg3OTgiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNDkuNTQ4Nzk4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMyZTM0MzY7c3Ryb2tlLXdpZHRoOjY7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5OjYsIDEyO3N0cm9rZS1kYXNob2Zmc2V0OjMuNjAwMDAwMDAwMDAwMDAwMDkiCiAgICAgICBkPSJNIDUsNTMgMjUsNDQiCiAgICAgICBpZD0icGF0aDM5MTctNjAiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI0OS41NDg3OTgiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNDkuNTQ4Nzk4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5OjYsIDEyO3N0cm9rZS1kYXNob2Zmc2V0OjMuNjAwMDAwMDAwMDAwMDAwMDkiCiAgICAgICBkPSJtIDI1LDQ0IDM0LDUiCiAgICAgICBpZD0icGF0aDM5MTctMi03IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNDkuNTQ4Nzk4IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjQ5LjU0ODc5OCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmZmZmZmO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTo2LCAxMjtzdHJva2UtZGFzaG9mZnNldDozLjYwMDAwMDAwMDAwMDAwMDA5IgogICAgICAgZD0iTSA1LDUzIDI1LDQ0IgogICAgICAgaWQ9InBhdGgzOTE3LTYwLTMiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI0OS41NDg3OTgiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNDkuNTQ4Nzk4IiAvPgogICAgPGcKICAgICAgIGlkPSJnNDAzNSIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NCwxMCkiCiAgICAgICBzdHlsZT0ic3Ryb2tlOiMyZTM0MzYiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNDkuNTQ4Nzk4IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjQ5LjU0ODc5OCI+CiAgICAgIDxwYXRoCiAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuNjM4OTQ3OSwwLDAsMC42Mzk0MDM1Miw3OS4xNTExODgsLTYuNjIxMzMyMykiCiAgICAgICAgIGQ9Ik0gNDguNTk3NTIxLDM5Ljk1ODM3IEEgMjAuOTU2MDc0LDIwLjk1NjA3NCAwIDAgMSAyNy42NDE0NDcsNjAuOTE0NDQ0IDIwLjk1NjA3NCwyMC45NTYwNzQgMCAwIDEgNi42ODUzNzMzLDM5Ljk1ODM3IDIwLjk1NjA3NCwyMC45NTYwNzQgMCAwIDEgMjcuNjQxNDQ3LDE5LjAwMjI5NiAyMC45NTYwNzQsMjAuOTU2MDc0IDAgMCAxIDQ4LjU5NzUyMSwzOS45NTgzNyBaIgogICAgICAgICBzb2RpcG9kaTpyeT0iMjAuOTU2MDc0IgogICAgICAgICBzb2RpcG9kaTpyeD0iMjAuOTU2MDc0IgogICAgICAgICBzb2RpcG9kaTpjeT0iMzkuOTU4MzciCiAgICAgICAgIHNvZGlwb2RpOmN4PSIyNy42NDE0NDciCiAgICAgICAgIGlkPSJwYXRoNDA0Mi0xMiIKICAgICAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDQwNDEpO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMmUzNDM2O3N0cm9rZS13aWR0aDozLjEyOTAzMDIzMDAwMDAwMDEzO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjAiCiAgICAgICAgIHNvZGlwb2RpOnR5cGU9ImFyYyIgLz4KICAgICAgPHBhdGgKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjMzLjg1MjIwMyIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjMzLjg1MjIwMyIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LWZpbGVuYW1lPSIvaG9tZS9qaW1tYWMveGltaWFuX2FydC9pY29ucy9uYXV0aWx1cy9zdXNlOTMvc3RvY2tfbmV3LTE2LnBuZyIKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xMjU1NTQyLDAuMTIzNDM4MTgsLTAuMTkyNzIxNDUsMC4xNzk3NzQ1OCwxMDkuMTg0NywtMTUuMjYwOTIyKSIKICAgICAgICAgZD0iTSA2OS4zNzUsMTI1IEEgMTQuMzc1LDE0LjM3NSAwIDAgMSA1NSwxMzkuMzc1IDE0LjM3NSwxNC4zNzUgMCAwIDEgNDAuNjI1LDEyNSAxNC4zNzUsMTQuMzc1IDAgMCAxIDU1LDExMC42MjUgMTQuMzc1LDE0LjM3NSAwIDAgMSA2OS4zNzUsMTI1IFoiCiAgICAgICAgIHNvZGlwb2RpOnJ5PSIxNC4zNzUiCiAgICAgICAgIHNvZGlwb2RpOnJ4PSIxNC4zNzUiCiAgICAgICAgIHNvZGlwb2RpOmN5PSIxMjUiCiAgICAgICAgIHNvZGlwb2RpOmN4PSI1NSIKICAgICAgICAgaWQ9InBhdGgxMjUxMS03NyIKICAgICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTojMmUzNDM2O3N0cm9rZS13aWR0aDoxLjI1MDAwMDI0MDAwMDAwMDEwO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmJsb2NrO2ZpbHRlcjp1cmwoI2ZpbHRlcjM5ODApIgogICAgICAgICBzb2RpcG9kaTp0eXBlPSJhcmMiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuNTcyNjI2MzQsMCwwLDAuNTcyNjI2MzUsODEuMTcxNzgsLTMuODgxMjE1NykiCiAgICAgICAgIGQ9Ik0gNDguNTk3NTIxLDM5Ljk1ODM3IEEgMjAuOTU2MDc0LDIwLjk1NjA3NCAwIDAgMSAyNy42NDE0NDcsNjAuOTE0NDQ0IDIwLjk1NjA3NCwyMC45NTYwNzQgMCAwIDEgNi42ODUzNzMzLDM5Ljk1ODM3IDIwLjk1NjA3NCwyMC45NTYwNzQgMCAwIDEgMjcuNjQxNDQ3LDE5LjAwMjI5NiAyMC45NTYwNzQsMjAuOTU2MDc0IDAgMCAxIDQ4LjU5NzUyMSwzOS45NTgzNyBaIgogICAgICAgICBzb2RpcG9kaTpyeT0iMjAuOTU2MDc0IgogICAgICAgICBzb2RpcG9kaTpyeD0iMjAuOTU2MDc0IgogICAgICAgICBzb2RpcG9kaTpjeT0iMzkuOTU4MzciCiAgICAgICAgIHNvZGlwb2RpOmN4PSIyNy42NDE0NDciCiAgICAgICAgIGlkPSJwYXRoNDA0Mi0wIgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmZmZmZmO3N0cm9rZS13aWR0aDozLjQ5MjY3OTEyMDAwMDAwMDAzO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjAiCiAgICAgICAgIHNvZGlwb2RpOnR5cGU9ImFyYyIgLz4KICAgICAgPHBhdGgKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC42NjgwNjQwOCwwLDAsMC42NjgwNjQwNyw3OC41MzM3NDIsLTcuNjk0NzUxNCkiCiAgICAgICAgIGQ9Ik0gNDguNTk3NTIxLDM5Ljk1ODM3IEEgMjAuOTU2MDc0LDIwLjk1NjA3NCAwIDAgMSAyNy42NDE0NDcsNjAuOTE0NDQ0IDIwLjk1NjA3NCwyMC45NTYwNzQgMCAwIDEgNi42ODUzNzMzLDM5Ljk1ODM3IDIwLjk1NjA3NCwyMC45NTYwNzQgMCAwIDEgMjcuNjQxNDQ3LDE5LjAwMjI5NiAyMC45NTYwNzQsMjAuOTU2MDc0IDAgMCAxIDQ4LjU5NzUyMSwzOS45NTgzNyBaIgogICAgICAgICBzb2RpcG9kaTpyeT0iMjAuOTU2MDc0IgogICAgICAgICBzb2RpcG9kaTpyeD0iMjAuOTU2MDc0IgogICAgICAgICBzb2RpcG9kaTpjeT0iMzkuOTU4MzciCiAgICAgICAgIHNvZGlwb2RpOmN4PSIyNy42NDE0NDciCiAgICAgICAgIGlkPSJwYXRoNDA0Mi0zIgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMmUzNDM2O3N0cm9rZS13aWR0aDoyLjk5MzcyNDgyMDAwMDAwMDE4O3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjAiCiAgICAgICAgIHNvZGlwb2RpOnR5cGU9ImFyYyIgLz4KICAgIDwvZz4KICAgIDxwYXRoCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6I2VmMjkyOTtzdHJva2U6I2E0MDAwMDtzdHJva2Utd2lkdGg6MS45OTk5OTk4ODtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgaWQ9InBhdGg0MjUwLTcxLTYtNDktMiIKICAgICAgIGQ9Im0gMjkuMDIyMDA2LDI1Ljg1ODgwMyBhIDUuMDE3NTkxMiw1LjAxNzI4OTcgMC4wMTMyODMwNiAxIDEgNy42MjIxNjgsNi41MjcwNDIgNS4wMTc1OTEyLDUuMDE3Mjg5NyAwLjAxMzI4MzA2IDEgMSAtNy42MjIxNjgsLTYuNTI3MDQyIHoiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNDkuNTQ4Nzk4IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjQ5LjU0ODc5OCIgLz4KICAgIDxwYXRoCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDM4MDEtMS0zLTE0LTAtMyk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiNlZjI5Mjk7c3Ryb2tlLXdpZHRoOjEuOTk5OTk5NDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgaWQ9InBhdGg0MjUwLTctMy0yLTUtNyIKICAgICAgIGQ9Im0gMzAuNTQ2NjgzLDI3LjE2NTgxNiBhIDMuMDAwMDEwOCwyLjk5OTk5MTMgODkuODc3Mzk5IDEgMSA0LjU1NzIzOCwzLjkwMjc2MSAzLjAwMDAxMDgsMi45OTk5OTEzIDg5Ljg3NzM5OSAwIDEgLTQuNTU3MjM4LC0zLjkwMjc2MSB6IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjQ5LjU0ODc5OCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI0OS41NDg3OTgiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzJlMzQzNjtzdHJva2Utd2lkdGg6NjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6NiwgMTI7c3Ryb2tlLWRhc2hvZmZzZXQ6My42MDAwMDAwMDAwMDAwMDAwOSIKICAgICAgIGQ9Im0gNDAsMjEgMCwzOCIKICAgICAgIGlkPSJwYXRoMzkxNy02MiIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjQ5LjU0ODc5OCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI0OS41NDg3OTgiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzJlMzQzNjtzdHJva2Utd2lkdGg6NjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6NiwgMTI7c3Ryb2tlLWRhc2hvZmZzZXQ6My42MDAwMDAwMDAwMDAwMDAwOSIKICAgICAgIGQ9Ik0gNDAsMjEgNjEsMTAiCiAgICAgICBpZD0icGF0aDM5MTctNjEiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI0OS41NDg3OTgiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNDkuNTQ4Nzk4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMyZTM0MzY7c3Ryb2tlLXdpZHRoOjY7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5OjYsIDEyO3N0cm9rZS1kYXNob2Zmc2V0OjMuNjAwMDAwMDAwMDAwMDAwMDkiCiAgICAgICBkPSJtIDUsMTUgMzUsNiIKICAgICAgIGlkPSJwYXRoMzkxNy02IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNDkuNTQ4Nzk4IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjQ5LjU0ODc5OCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmZmZmZmO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTo2LCAxMjtzdHJva2UtZGFzaG9mZnNldDozLjYwMDAwMDAwMDAwMDAwMDA5IgogICAgICAgZD0ibSA1LDE1IDM1LDYiCiAgICAgICBpZD0icGF0aDM5MTctNi05IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNDkuNTQ4Nzk4IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjQ5LjU0ODc5OCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmZmZmZmO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTo2LCAxMjtzdHJva2UtZGFzaG9mZnNldDozLjYwMDAwMDAwMDAwMDAwMDA5IgogICAgICAgZD0iTSA0MCwyMSA2MSwxMCIKICAgICAgIGlkPSJwYXRoMzkxNy02MS05IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNDkuNTQ4Nzk4IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjQ5LjU0ODc5OCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmZmZmZmO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTo2LCAxMjtzdHJva2UtZGFzaG9mZnNldDozLjYwMDAwMDAwMDAwMDAwMDA5IgogICAgICAgZD0ibSA0MCwyMSAwLDM4IgogICAgICAgaWQ9InBhdGgzOTE3LTYyLTEiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI0OS41NDg3OTgiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNDkuNTQ4Nzk4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5OjYsIDEyO3N0cm9rZS1kYXNob2Zmc2V0OjMuNiIKICAgICAgIGQ9Ik0gNSwxNSA1LDUzIgogICAgICAgaWQ9InBhdGgzOTE3LTMtOSIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjQ5LjU0ODc5OCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI0OS41NDg3OTgiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6NiwgMTI7c3Ryb2tlLWRhc2hvZmZzZXQ6My42MDAwMDAwMDAwMDAwMDAwOSIKICAgICAgIGQ9Ik0gNSwxNSAyNSw1IgogICAgICAgaWQ9InBhdGgzOTE3LTktMiIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjQ5LjU0ODc5OCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI0OS41NDg3OTgiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6NiwgMTI7c3Ryb2tlLWRhc2hvZmZzZXQ6My42MDAwMDAwMDAwMDAwMDAwOSIKICAgICAgIGQ9Ik0gNDAsNTkgNTksNDkiCiAgICAgICBpZD0icGF0aDM5MTctMC0xIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNDkuNTQ4Nzk4IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjQ5LjU0ODc5OCIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmZmZmZmO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTo2LCAxMjtzdHJva2UtZGFzaG9mZnNldDozLjYwMDAwMDAwMDAwMDAwMDA5IgogICAgICAgZD0ibSA1LDUzIDM0LDYiCiAgICAgICBpZD0icGF0aDM5MTctMjgiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjQ5LjU0ODc5OCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI0OS41NDg3OTgiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6NiwgMTI7c3Ryb2tlLWRhc2hvZmZzZXQ6My42IgogICAgICAgZD0ibSA1OSwxMSAwLDM4IgogICAgICAgaWQ9InBhdGgzOTE3LTI3LTYiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI0OS41NDg3OTgiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNDkuNTQ4Nzk4IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5OjYsIDEyO3N0cm9rZS1kYXNob2Zmc2V0OjMuNjAwMDAwMDAwMDAwMDAwMDkiCiAgICAgICBkPSJtIDI1LDUgMzQsNiIKICAgICAgIGlkPSJwYXRoMzkxNy0xLTMiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjQ5LjU0ODc5OCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI0OS41NDg3OTgiIC8+CiAgPC9nPgo8L3N2Zz4K
"""
Center_Mass_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjY0cHgiCiAgIGhlaWdodD0iNjRweCIKICAgaWQ9InN2ZzI5ODUiCiAgIHZlcnNpb249IjEuMSIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi4xIHIxNTM3MSIKICAgc29kaXBvZGk6ZG9jbmFtZT0iQ2VudGVyT2ZNYXNzLnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczI5ODciPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzNzczIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6Izg4OGE4NTtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDM3NzUiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNkM2Q3Y2Y7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AzNzc3IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mzc5NCI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNkM2Q3Y2Y7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzNzk2IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzc5OCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDM3OTQiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODY3IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICB4MT0iMzIuNzE0NzQ4IgogICAgICAgeTE9IjI3LjM5ODM1MiIKICAgICAgIHgyPSIzOC45OTc3MjYiCiAgICAgICB5Mj0iMy42NTIzMTI1IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjkyODk2OTMxLDAsMCwwLjgwMTQ1NzEzLDEuODQwNzE3Nyw0LjQ0MzIyNTIpIgogICAgICAgc3ByZWFkTWV0aG9kPSJyZWZsZWN0IiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzNzk0LTgiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZiNDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDM3OTYtNSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZWEwMDtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AzNzk4LTgiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICB5Mj0iMjMuODQ4Njg2IgogICAgICAgeDI9IjYyLjY1MjM3IgogICAgICAgeTE9IjIzLjg0ODY4NiIKICAgICAgIHgxPSIxNS4xODQ5NzEiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEuMDI2NTU2OCwwLDAsMC45MTQ5MDYyNiwtMy4yMzY3MDYsLTEuODAyNzAzMikiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4ODYiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzNzk0LTgiCiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM3OTQtMSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmI0MDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wMzc5Ni0yIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZlYTAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDM3OTgtMiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIHkyPSIyMy44NDg2ODYiCiAgICAgICB4Mj0iNjIuNjUyMzciCiAgICAgICB5MT0iMjMuODQ4Njg2IgogICAgICAgeDE9IjE1LjE4NDk3MSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS4wMjY1NTY4LDAsMCwwLjkxNDkwNjI2LC0zLjIzNjcwNiwtMS44MDI3MDMyKSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mzg4Ni0wIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50Mzc5NC0xIgogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzNzczIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mzc3OSIKICAgICAgIHgxPSI1Ny43MjQzNSIKICAgICAgIHkxPSIzNC40MzA0MDEiCiAgICAgICB4Mj0iNTAuNjIwMzgiCiAgICAgICB5Mj0iMjMuOTMzNjgiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzgzNi0wIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2M0YTAwMDtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzODM4LTIiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmY2U5NGY7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzg0MC01IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzgzNi0wLTYtOTItNC02IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzgwMS0xLTMtMTQtMC0zIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICB4MT0iLTE4IgogICAgICAgeTE9IjE4IgogICAgICAgeDI9Ii0yMiIKICAgICAgIHkyPSI1IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjQyODU3MDE5LDEuMTk0MTM0OWUtOCwwLDAuNDI4NTcyOTcsNDEuMTAzOTA0LDI0LjIxMTQxMSkiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4MzYtMC02LTkyLTQtNiI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNhNDAwMDA7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzODM4LTItNy0wNi04LTciIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNlZjI5Mjk7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AzODQwLTUtNS04LTctNSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgPC9kZWZzPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSI5LjY4NzUiCiAgICAgaW5rc2NhcGU6Y3g9IjEzLjcyOTAzMiIKICAgICBpbmtzY2FwZTpjeT0iMzIiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJweCIKICAgICBpbmtzY2FwZTpncmlkLWJib3g9InRydWUiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEzNjEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOnNuYXAtZ2xvYmFsPSJmYWxzZSI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9ImdyaWQyOTk3IgogICAgICAgZW1wc3BhY2luZz0iMiIKICAgICAgIHZpc2libGU9InRydWUiCiAgICAgICBlbmFibGVkPSJ0cnVlIgogICAgICAgc25hcHZpc2libGVncmlkbGluZXNvbmx5PSJ0cnVlIiAvPgogIDwvc29kaXBvZGk6bmFtZWR2aWV3PgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTI5OTAiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgICAgPGRjOmNyZWF0b3I+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5beW9yaWt2YW5oYXZyZV08L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOmNyZWF0b3I+CiAgICAgICAgPGRjOnRpdGxlPkFyY2hfU2l0ZV9UcmVlPC9kYzp0aXRsZT4KICAgICAgICA8ZGM6ZGF0ZT4yMDExLTEyLTA2PC9kYzpkYXRlPgogICAgICAgIDxkYzpyZWxhdGlvbj5odHRwOi8vd3d3LmZyZWVjYWR3ZWIub3JnL3dpa2kvaW5kZXgucGhwP3RpdGxlPUFydHdvcms8L2RjOnJlbGF0aW9uPgogICAgICAgIDxkYzpwdWJsaXNoZXI+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5GcmVlQ0FEPC9kYzp0aXRsZT4KICAgICAgICAgIDwvY2M6QWdlbnQ+CiAgICAgICAgPC9kYzpwdWJsaXNoZXI+CiAgICAgICAgPGRjOmlkZW50aWZpZXI+RnJlZUNBRC9zcmMvTW9kL0FyY2gvUmVzb3VyY2VzL2ljb25zL0FyY2hfU2l0ZV9UcmVlLnN2ZzwvZGM6aWRlbnRpZmllcj4KICAgICAgICA8ZGM6cmlnaHRzPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+RnJlZUNBRCBMR1BMMis8L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOnJpZ2h0cz4KICAgICAgICA8Y2M6bGljZW5zZT5odHRwczovL3d3dy5nbnUub3JnL2NvcHlsZWZ0L2xlc3Nlci5odG1sPC9jYzpsaWNlbnNlPgogICAgICAgIDxkYzpjb250cmlidXRvcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPlthZ3J5c29uXSBBbGV4YW5kZXIgR3J5c29uPC9kYzp0aXRsZT4KICAgICAgICAgIDwvY2M6QWdlbnQ+CiAgICAgICAgPC9kYzpjb250cmlidXRvcj4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpZD0ibGF5ZXIxIgogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZpbGw6I2QzZDdjZjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6IzJlMzQzNjtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7bWFya2VyOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgIGQ9Ik0gMyw0MSAyOSw1MyAyOSw2MSAzLDQ5IHoiCiAgICAgICBpZD0icGF0aDM5MDQiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjYyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMTMuMTIzIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjExMy4xMjMiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50Mzc3OSk7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiMyZTM0MzY7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO21hcmtlcjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICBkPSJNIDYxLDExIDYxLDM1IDI5LDYxIDI5LDUzIDQwLjc3NDc0MywxMy45Mzk1OCB6IgogICAgICAgaWQ9InBhdGgzODY5IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2NjIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjExMy4xMjMiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTEzLjEyMyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50Mzg2Nyk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMyZTM0MzY7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZSIKICAgICAgIGQ9Ik0gMzUsMyAyMywxMyAxNywyOSAzLDQxIDI5LDUzIDQwLjY4MzI1LDQwLjIwODI0OSA0OSwyMyA2MSwxMSB6IgogICAgICAgaWQ9InBhdGgzNzYzIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2NjY2NjIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjExMy4xMjMiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTEzLjEyMyIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZDNkN2NmO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJNIDMwLjk4MjY1OCw1My43OTc3MjQgMzEsNTYuODA5MTA0IDU4Ljk4MjY1OCwzNC4wNTIwMjUgbCAwLC0xOC4xODQ5MzQgLTguMzEyMTUzLDguMzIzNjY5IC04LjM0NjgzNiwxNy4xMjEzOTMgeiIKICAgICAgIGlkPSJwYXRoMjk5OSIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2MiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iMTEzLjEyMyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSIxMTMuMTIzIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNmZmZmZmY7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Ik0gNS4wMTA1NTQ2LDQ0LjE2OTM2OSA0Ljk5MDk1OTMsNDcuNzA2MzggMjcuMDE2ODE4LDU3Ljg4MzA1NSAyNi45NzU0NjIsNTQuMjc5NDQxIHoiCiAgICAgICBpZD0icGF0aDMwMDEiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjYyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMTMuMTIzIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjExMy4xMjMiIC8+CiAgICA8ZwogICAgICAgaWQ9Imc0NTMxIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMS42MjkxNDQ2LDAsMCwxLjYyOTE0NDYsLTE1LjIyNzE2LC0yMy4yOTkzNDcpIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjExMy4xMjMiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTEzLjEyMyI+CiAgICAgIDxwYXRoCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI0OS41NDg3OTgiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI0OS41NDg3OTgiCiAgICAgICAgIGQ9Im0gMjkuMDIyMDA2LDI1Ljg1ODgwMyBhIDUuMDE3NTkxMiw1LjAxNzI4OTcgMC4wMTMyODMwNiAxIDEgNy42MjIxNjgsNi41MjcwNDIgNS4wMTc1OTEyLDUuMDE3Mjg5NyAwLjAxMzI4MzA2IDEgMSAtNy42MjIxNjgsLTYuNTI3MDQyIHoiCiAgICAgICAgIGlkPSJwYXRoNDI1MC03MS02LTQ5LTIiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNlZjI5Mjk7c3Ryb2tlOiNhNDAwMDA7c3Ryb2tlLXdpZHRoOjEuOTk5OTk5ODg7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgICAgPHBhdGgKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjQ5LjU0ODc5OCIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjQ5LjU0ODc5OCIKICAgICAgICAgZD0ibSAzMC41NDY2ODMsMjcuMTY1ODE2IGEgMy4wMDAwMTA4LDIuOTk5OTkxMyA4OS44NzczOTkgMSAxIDQuNTU3MjM4LDMuOTAyNzYxIDMuMDAwMDEwOCwyLjk5OTk5MTMgODkuODc3Mzk5IDAgMSAtNC41NTcyMzgsLTMuOTAyNzYxIHoiCiAgICAgICAgIGlkPSJwYXRoNDI1MC03LTMtMi01LTciCiAgICAgICAgIHN0eWxlPSJmaWxsOnVybCgjbGluZWFyR3JhZGllbnQzODAxLTEtMy0xNC0wLTMpO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojZWYyOTI5O3N0cm9rZS13aWR0aDoxLjk5OTk5OTQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDwvZz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmZmZmZmO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJNIDYuNjU5NDIwNCw0MC40Njc4NjEgMTguNjk1NDc2LDMwLjE2NjMyMyAyNC42OTc5NSwxNC4xOTI2NTEgMzUuNTcwMjM3LDUuMjc4MTIzIDU3LjE1MzI5NSwxMS45MDkzMjEgNDcuMzU2NzExLDIxLjc3MDM0MiAzOC45ODc0MjMsMzkuMDcxMTY2IDI4LjQ3MjM0Miw1MC41MzgwMDUgeiIKICAgICAgIGlkPSJwYXRoMzAwMyIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2NjYyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSIxMTMuMTIzIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjExMy4xMjMiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzJlMzQzNjtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0iTSAzNSwzLjAwMDAwMDUgMjMsMTMgMTcsMjkgMyw0MSAyOSw1MyA0MC42ODMyNSw0MC4yMDgyNDkgNDksMjMgNjEsMTEgWiIKICAgICAgIGlkPSJwYXRoMzc2My0xIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2NjY2NjIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjExMy4xMjMiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iMTEzLjEyMyIgLz4KICA8L2c+Cjwvc3ZnPgo=
"""
Snap_Options_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjE5MiIKICAgaGVpZ2h0PSI2NCIKICAgaWQ9InN2ZzI3MjYiCiAgIHNvZGlwb2RpOnZlcnNpb249IjAuMzIiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuMSByMTUzNzEiCiAgIHNvZGlwb2RpOmRvY25hbWU9IlNuYXBfT3B0aW9ucy5zdmciCiAgIGlua3NjYXBlOm91dHB1dF9leHRlbnNpb249Im9yZy5pbmtzY2FwZS5vdXRwdXQuc3ZnLmlua3NjYXBlIgogICB2ZXJzaW9uPSIxLjEiPgogIDxkZWZzCiAgICAgaWQ9ImRlZnMyNzI4Ij4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mzc3OSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwNjk4OWE7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzNzgxIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMzRlMGUyO3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzc4MyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDMxNDQiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQ0Mjc0IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDAuNjk4NTI5NCwwLDIwMi44Mjg2MykiCiAgICAgICBjeD0iMjI1LjI2NDAyIgogICAgICAgY3k9IjY3Mi43OTczNiIKICAgICAgIGZ4PSIyMjUuMjY0MDIiCiAgICAgICBmeT0iNjcyLjc5NzM2IgogICAgICAgcj0iMzQuMzQ1MTg4IiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMTQ0Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzMTQ2IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eTowOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDMxNDgiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzMTQ0IgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50NDI3MiIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwwLjY5ODUyOTQsMCwyMDIuODI4NjMpIgogICAgICAgY3g9IjIyNS4yNjQwMiIKICAgICAgIGN5PSI2NzIuNzk3MzYiCiAgICAgICBmeD0iMjI1LjI2NDAyIgogICAgICAgZnk9IjY3Mi43OTczNiIKICAgICAgIHI9IjM0LjM0NTE4OCIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAzMiA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF96PSI2NCA6IDMyIDogMSIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIzMiA6IDIxLjMzMzMzMyA6IDEiCiAgICAgICBpZD0icGVyc3BlY3RpdmUyNzM0IiAvPgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzMTQ0IgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50MzAxMSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwwLjY5ODUyOTQsMCwyMDIuODI4NjMpIgogICAgICAgY3g9IjIyNS4yNjQwMiIKICAgICAgIGN5PSI2NzIuNzk3MzYiCiAgICAgICBmeD0iMjI1LjI2NDAyIgogICAgICAgZnk9IjY3Mi43OTczNiIKICAgICAgIHI9IjM0LjM0NTE4OCIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50Mzc3OSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM3ODUiCiAgICAgICB4MT0iMTcwLjIwNDkxIgogICAgICAgeTE9IjcyOC44MzYzNiIKICAgICAgIHgyPSIxNDYuMDgwNjMiCiAgICAgICB5Mj0iNTA4LjM4NzE1IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzk0Ljc0OTQxLDcuNzgyNTQ4NmUtNikiCiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzNzc5IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mzc4OCIKICAgICAgIHgxPSIxNzAuNDc4NjgiCiAgICAgICB5MT0iNzQwLjgyNjExIgogICAgICAgeDI9IjE0NS44MDY4NCIKICAgICAgIHkyPSI0ODEuNzcxODgiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjE0MjY2OCwwLDAsMS4xNDI2NjgxLC0xMDM3LjEyNDgsLTE1MjYuNTc5OSkiCiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzNzc5IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzgyNSIKICAgICAgIHgxPSIxODguNjA3MTkiCiAgICAgICB5MT0iNjE1LjAwNjM1IgogICAgICAgeDI9IjIwNi43MjgzMyIKICAgICAgIHkyPSI2OTAuMTM3MzkiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSg3ODkuNDk4ODUsMS4xMzkzMjk3ZS02KSIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDM3NzkiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODMzIgogICAgICAgeDE9IjIxMy42NTQzOSIKICAgICAgIHkxPSI3NzEuNjY1ODkiCiAgICAgICB4Mj0iMTAyLjYzMTEzIgogICAgICAgeTI9IjQ1MC45MzIwNyIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogIDwvZGVmcz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iMy42MDQwMDM4IgogICAgIGlua3NjYXBlOmN4PSItNC40NTAzNTE1IgogICAgIGlua3NjYXBlOmN5PSIyNy4yNTYyNjYiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0iZzQyODkiCiAgICAgc2hvd2dyaWQ9InRydWUiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmdyaWQtYmJveD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1NjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTM2MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6c25hcC1ub2Rlcz0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLWJib3g9ImZhbHNlIgogICAgIGlua3NjYXBlOnNuYXAtZ2xvYmFsPSJmYWxzZSI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9ImdyaWQyOTkxIgogICAgICAgZW1wc3BhY2luZz0iMiIKICAgICAgIHZpc2libGU9InRydWUiCiAgICAgICBlbmFibGVkPSJ0cnVlIgogICAgICAgc25hcHZpc2libGVncmlkbGluZXNvbmx5PSJ0cnVlIiAvPgogIDwvc29kaXBvZGk6bmFtZWR2aWV3PgogIDxnCiAgICAgaWQ9ImxheWVyMSIKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIj4KICAgIDxnCiAgICAgICBpZD0iZzQyODkiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjE2MjEyODIsMCwwLDAuMTYyMTI4Miw2LjM2MDU5ODYsLTY2LjEwODgwNikiPgogICAgICA8cGF0aAogICAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO3Zpc2liaWxpdHk6dmlzaWJsZTtmaWxsOnVybCgjbGluZWFyR3JhZGllbnQzNzg1KTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6IzA0MmEyYTtzdHJva2Utd2lkdGg6MTIuMzM1OTE2NTI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO21hcmtlcjpub25lO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICAgIGQ9Ik0gMjc3LjgzNDIsNDUwLjkzMjA4IDkxLjI1MTAxNSw2MTguNzU3MjcgYyAtOC45MTgzMzUsLTMuNTU2NDcgLTE4LjY1MDUzNCwtNS40MTI4MiAtMjguODU3MTQ1LC01LjEzOTUyIC00MC4yMDY4MTUsMS4wNzY2NSAtNzEuODM1ODI4NSwzNC41MDk0MyAtNzAuNzU5MzAxLDc0LjcyMDc3IDEuMDc2NTI3Miw0MC4yMTEzNSAzNC41MDU1MTksNzIuMDQxNiA3NC43MTIzMzQsNzAuOTY0OTYgNDAuMjA2ODE3LC0xLjA3NjY1IDcyLjAzMzQ4NywtMzQuNzA3MSA3MC45NTY5NTcsLTc0LjkxODQ1IC0wLjEwNTQ5LC0zLjkzOTk1IC0wLjY4MDMsLTcuNzEwOTQgLTEuMzgzNTYsLTExLjQ2NTA4IEwgMzI0LjY3NzY0LDUwMy4xMTgwMSBaIgogICAgICAgICBpZD0icmVjdDIyNjkiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1NC44NTcxNDMiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1NC44NTcxNDMiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7dmlzaWJpbGl0eTp2aXNpYmxlO2ZpbGw6bm9uZTtzdHJva2U6IzM0ZTBlMjtzdHJva2Utd2lkdGg6MTIuMzM1OTE2NTI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO21hcmtlcjpub25lO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICAgIGQ9Ik0gMjc2Ljc0Mzg1LDQ2OC42NDI5NyA5NC4wODQyMyw2MzIuNTc4MzEgYyAtOC45MTgzMywtMy41NTY0NyAtMjUuMjYzNTY5LC03LjE5NzcyIC0zNi4wMTY1MjMsLTUuNzcxNDcgLTM1LjkxMzgzNiw0Ljc2MzU3IC01My44NjIzOTcyLDMwLjQxOTA1IC01NC4xMjM5MDU3LDY0LjY3NTYyIC0wLjI0OTU4NjIsMzIuNjk0NzggMzYuMzkwNjcxNyw1NS4xMTUxMyA1NS41MTE2MjU3LDU1LjUxMTYyIDI2LjY0ODU2MiwwLjU1MjU5IDYyLjg2MDcyMywtMTMuNzI3OSA2NS4wNzIxMDMsLTYyLjI3NDMyIDAuMjQ5NTcsLTUuNDc4NzcgLTAuOTA1MDUsLTExLjM3OTU2IC0yLjk5NjAzLC0xNS41MzAxOSBsIDE4NS43MzI2MSwtMTY3LjAzMDUgeiIKICAgICAgICAgaWQ9InJlY3QyMjY5LTEiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2Nzc3NzY2NjIgogICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTQuODU3MTQzIgogICAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTQuODU3MTQzIiAvPgogICAgICA8cGF0aAogICAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO3Zpc2liaWxpdHk6dmlzaWJsZTtmaWxsOnVybCgjbGluZWFyR3JhZGllbnQzNzg4KTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6IzA0MmEyYTtzdHJva2Utd2lkdGg6MTIuMzM1OTE2NTI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO21hcmtlcjpub25lO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICAgIGQ9Im0gNjgwLjgwNTAxLDQzOC41OTYxNiAtOTcuMjYzNyw4OS40OTU3MyBjIC05LjQ3NDA3LC00LjAyNjE1IC0xOS44NjAzMywtNi40NTQ3NSAtMzAuNzM0NTgsLTYuNzA3MzggLTQ2Ljk2NDIyLC0xLjA5MTExIC04NS44ODk0MSwzNy4wNjI4MyAtODYuOTU2NCw4NS4wODgwMSAtMC4yMDY2OSw5LjMwMzUzIDEuMTAyMDIsMTguMTcyMzUgMy41NjA3MSwyNi42Mzc5MiBsIC05NS4zODk2Niw4Ny43NzA5NyA0NC42MDI2Myw1MC43ODQ1MSA5My41MTU2MSwtODYuMDQ2MjEgYyAxMS4wODUyOCw1LjgyNDc4IDIzLjQzNDgzLDkuNDY0NzEgMzYuNzMxNTgsOS43NzM2MiA0Ni45NjQyMSwxLjA5MTExIDg2LjA3Njc4LC0zNy4wNjI4MyA4Ny4xNDM3NywtODUuMDg4MDEgMC4yNjA1MywtMTEuNzI3NTggLTEuOTIwNywtMjIuODQ5NDYgLTUuODA5NTgsLTMzLjE1MzY3IGwgOTUuMzg5NjUsLTg3Ljc3MDk3IHoiCiAgICAgICAgIGlkPSJyZWN0MjI2OS0yIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTQuODU3MTQzIgogICAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTQuODU3MTQzIiAvPgogICAgICA8cGF0aAogICAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO3Zpc2liaWxpdHk6dmlzaWJsZTtmaWxsOm5vbmU7c3Ryb2tlOiMzNGUwZTI7c3Ryb2tlLXdpZHRoOjEyLjMzNTkxNjUyO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MTttYXJrZXI6bm9uZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgICBkPSJtIDY4MC4wNjEwMSw0NTYuNDU3MTkgLTkzLjk5NTg0LDg1Ljg1MTUyIGMgLTcuOTc4MTYsLTMuNDI5NjggLTI0LjAxMzkxLC04LjMwMjExIC0zMy4xNzExNiwtOC41MTcyOSAtMzkuNTQ4ODEsLTAuOTI5NDggLTczLjY1MDA0LDMxLjM2MjEgLTc0LjU0ODU2LDcyLjI3MjQzIC0wLjE3NDA2LDcuOTI1MjMgMi42MzAxMiwyNC4yNTEwOSA0LjcwMDU5LDMxLjQ2MjUgbCAtOTEuMzgxOCw4NC4zNTE2NiAyNy43MTU4NSwzMi4yNzUyNiA5MC44NzcwMiwtODMuODUzNzYgYyA5LjMzNDk1LDQuOTYxODcgMjUuODgyNiwxMi4yOTk1NSAzNy4wNzk4NywxMi41NjI3MSAzOS41NDg4MSwwLjkyOTQ1IDc1LjAwODk3LC0yOS42MDk1MiA3Ni4xODc4NCwtNzMuODg0MTkgMC4yNjU5NiwtOS45ODkwMiAtNC43MDE0LC0yNi40NzM0MSAtNy45NzYyMywtMzUuMjUxMDUgbCA5Mi42NjQwMiwtODUuMTQxMjUgeiIKICAgICAgICAgaWQ9InJlY3QyMjY5LTEtMyIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY3NzY2NjY3NzY2NjIgogICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTQuODU3MTQzIgogICAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTQuODU3MTQzIiAvPgogICAgICA8cGF0aAogICAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO3Zpc2liaWxpdHk6dmlzaWJsZTtmaWxsOnVybCgjbGluZWFyR3JhZGllbnQzODMzKTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6IzA0MmEyYTtzdHJva2Utd2lkdGg6MTIuMzM1OTE2NTI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO21hcmtlcjpub25lO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICAgIGQ9Im0gOTQ3LjU0NDg2LDQzOC41OTYxNiBjIC05Mi4wMDQwNSwwIC0xNjYuNDM4MTIsNzQuNjI3NTkgLTE2Ni40MzgxMiwxNjYuNjMxNjQgMCw5Mi4wMDQwNSA3NC40MzQwNywxNjYuNDM4MTIgMTY2LjQzODEyLDE2Ni40MzgxMiA5Mi4wMDQwNCwwIDE2Ni42MzE0NCwtNzQuNDM0MDcgMTY2LjYzMTQ0LC0xNjYuNDM4MTIgMCwtOTIuMDA0MDUgLTc0LjYyNzQsLTE2Ni42MzE2NCAtMTY2LjYzMTQ0LC0xNjYuNjMxNjQgeiBtIDAuMDk2OCw2MS42Nzk1NyBjIDYwLjYyMzQ0LDAgMTA0Ljg1NTI0LDQ0LjIzMTkgMTA0Ljg1NTI0LDEwNC44NTUzIDAsNjAuNjIzNDUgLTQ0LjIzMTgsMTA0Ljg1NTMgLTEwNC44NTUyNCwxMDQuODU1MyAtNjAuNjIzNDIsMCAtMTA0Ljg1NTMsLTQ0LjIzMTg1IC0xMDQuODU1MywtMTA0Ljg1NTMgMCwtNjAuNjIzNCA0NC4yMzE4OCwtMTA0Ljg1NTMgMTA0Ljg1NTMsLTEwNC44NTUzIHoiCiAgICAgICAgIGlkPSJwYXRoNDM2NCIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJzc3Nzc3Nzc3NzIgogICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTQuODU3MTQzIgogICAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTQuODU3MTQzIiAvPgogICAgICA8ZWxsaXBzZQogICAgICAgICByeT0iNTUuNTAxMDI2IgogICAgICAgICByeD0iNTUuNTAxMDE5IgogICAgICAgICBjeT0iLTc3Ny44Nzk3IgogICAgICAgICBjeD0iLTgxMS44NTU2NSIKICAgICAgICAgaWQ9InBhdGgzMTYyIgogICAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO3Zpc2liaWxpdHk6dmlzaWJsZTtmaWxsOnVybCgjbGluZWFyR3JhZGllbnQzODI1KTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6IzA0MmEyYTtzdHJva2Utd2lkdGg6MTIuMzM1OTE2NTI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO21hcmtlcjpub25lO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICAgIHRyYW5zZm9ybT0icm90YXRlKDE2OC43ODUyMykiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1NC44NTcxNDMiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1NC44NTcxNDMiIC8+CiAgICAgIDxjaXJjbGUKICAgICAgICAgcj0iMTU0LjE2OTUxIgogICAgICAgICBjeT0iLTc3Ny44Nzk3NiIKICAgICAgICAgY3g9Ii04MTEuODU1NjUiCiAgICAgICAgIGlkPSJwYXRoMzE2Mi0xIgogICAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO3Zpc2liaWxpdHk6dmlzaWJsZTtmaWxsOm5vbmU7c3Ryb2tlOiMzNGUwZTI7c3Ryb2tlLXdpZHRoOjEyLjMzNTkxNjUyO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MTttYXJrZXI6bm9uZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgICB0cmFuc2Zvcm09InJvdGF0ZSgxNjguNzg1MjMpIgogICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTQuODU3MTQzIgogICAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTQuODU3MTQzIiAvPgogICAgICA8ZWxsaXBzZQogICAgICAgICByeT0iMTE3LjE2ODgzIgogICAgICAgICByeD0iMTE3LjE2ODgyIgogICAgICAgICBjeT0iLTc3Ny44Nzk3NiIKICAgICAgICAgY3g9Ii04MTEuODU1NzEiCiAgICAgICAgIGlkPSJwYXRoMzE2Mi0xLTciCiAgICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7dmlzaWJpbGl0eTp2aXNpYmxlO2ZpbGw6bm9uZTtzdHJva2U6IzM0ZTBlMjtzdHJva2Utd2lkdGg6MTIuMzM1OTE2NTI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO21hcmtlcjpub25lO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICAgIHRyYW5zZm9ybT0icm90YXRlKDE2OC43ODUyMykiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1NC44NTcxNDMiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1NC44NTcxNDMiIC8+CiAgICAgIDxlbGxpcHNlCiAgICAgICAgIHJ5PSI0My4xNjc0NjkiCiAgICAgICAgIHJ4PSI0My4xNjc0NjEiCiAgICAgICAgIGN5PSItNzc3Ljg3OTciCiAgICAgICAgIGN4PSItODExLjg1NTY1IgogICAgICAgICBpZD0icGF0aDMxNjItMS03LTQiCiAgICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7dmlzaWJpbGl0eTp2aXNpYmxlO2ZpbGw6bm9uZTtzdHJva2U6IzM0ZTBlMjtzdHJva2Utd2lkdGg6MTIuMzM1OTE2NTI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO21hcmtlcjpub25lO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiCiAgICAgICAgIHRyYW5zZm9ybT0icm90YXRlKDE2OC43ODUyMykiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1NC44NTcxNDMiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1NC44NTcxNDMiIC8+CiAgICA8L2c+CiAgPC9nPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTYzMDUiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgICAgPGNjOmxpY2Vuc2UKICAgICAgICAgICByZGY6cmVzb3VyY2U9IiIgLz4KICAgICAgICA8ZGM6ZGF0ZT5Nb24gTWFyIDEyIDE3OjIwOjAzIDIwMTIgLTAzMDA8L2RjOmRhdGU+CiAgICAgICAgPGRjOmNyZWF0b3I+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5bWW9yaWsgdmFuIEhhdnJlXTwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6Y3JlYXRvcj4KICAgICAgICA8ZGM6cmlnaHRzPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+RnJlZUNBRCBMR1BMMis8L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOnJpZ2h0cz4KICAgICAgICA8ZGM6cHVibGlzaGVyPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+RnJlZUNBRDwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6cHVibGlzaGVyPgogICAgICAgIDxkYzppZGVudGlmaWVyPkZyZWVDQUQvc3JjL01vZC9EcmFmdC9SZXNvdXJjZXMvaWNvbnMvU25hcF9FbmRwb2ludC5zdmc8L2RjOmlkZW50aWZpZXI+CiAgICAgICAgPGRjOnJlbGF0aW9uPmh0dHA6Ly93d3cuZnJlZWNhZHdlYi5vcmcvd2lraS9pbmRleC5waHA/dGl0bGU9QXJ0d29yazwvZGM6cmVsYXRpb24+CiAgICAgICAgPGRjOmNvbnRyaWJ1dG9yPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+W2Fncnlzb25dIEFsZXhhbmRlciBHcnlzb248L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOmNvbnRyaWJ1dG9yPgogICAgICAgIDxkYzpzdWJqZWN0PgogICAgICAgICAgPHJkZjpCYWc+CiAgICAgICAgICAgIDxyZGY6bGk+bGluZTwvcmRmOmxpPgogICAgICAgICAgICA8cmRmOmxpPmVuZHBvaW50PC9yZGY6bGk+CiAgICAgICAgICAgIDxyZGY6bGkgLz4KICAgICAgICAgIDwvcmRmOkJhZz4KICAgICAgICA8L2RjOnN1YmplY3Q+CiAgICAgICAgPGRjOmRlc2NyaXB0aW9uPmxpbmUgd2l0aCBidWxnZSBhdCBvbmUgZW5kcG9pbnQ8L2RjOmRlc2NyaXB0aW9uPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KPC9zdmc+Cg==
"""
Dim_Radius_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjY0cHgiCiAgIGhlaWdodD0iNjRweCIKICAgaWQ9InN2ZzU4MjEiCiAgIHNvZGlwb2RpOnZlcnNpb249IjAuMzIiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuMCByMTUyOTkiCiAgIHNvZGlwb2RpOmRvY25hbWU9IkRpbWVuc2lvbl9SYWRpdXMuc3ZnIgogICBpbmtzY2FwZTpvdXRwdXRfZXh0ZW5zaW9uPSJvcmcuaW5rc2NhcGUub3V0cHV0LnN2Zy5pbmtzY2FwZSIKICAgdmVyc2lvbj0iMS4xIgogICBpbmtzY2FwZTpleHBvcnQtZmlsZW5hbWU9Ii9ob21lL3VzZXIvRG93bmxvYWRzL2NhZC9teXN0dWZmL2ljb25zL0RyYXdpbmcvVGVjaERyYXdfZGltZW5zaW9ucy9kcmF3aW5nX0RpbWVuc2lvbl9SYWRpdXNfNV8zMnB4LnBuZyIKICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjQ1IgogICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNDUiPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM1ODIzIj4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzAyOSIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyI+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMzAzMSIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojYzRhMDAwO3N0b3Atb3BhY2l0eToxIiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDMwMzMiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZjZTk0ZjtzdG9wLW9wYWNpdHk6MSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMwMjMiCiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDMwMjUiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2M0YTAwMDtzdG9wLW9wYWNpdHk6MSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzMDI3IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmY2U5NGY7c3RvcC1vcGFjaXR5OjEiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODEwIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2M0YTAwMDtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDM4MTIiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmY2U5NGY7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AzODE0IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50NjM0OSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wNjM1MSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3A2MzUzIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzM3NyI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDE5YTM7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wMzM3OSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwNjlmZjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AzMzgxIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzM3NyIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMzODMiCiAgICAgICB4MT0iOTAxLjE4NzUiCiAgICAgICB5MT0iMTE5MC44NzUiCiAgICAgICB4Mj0iMTI2Ny45MDYyIgogICAgICAgeTI9IjExOTAuODc1IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC0xLDAsMCwxLDIxOTkuMzU2LDApIiAvPgogICAgPGlua3NjYXBlOnBlcnNwZWN0aXZlCiAgICAgICBzb2RpcG9kaTp0eXBlPSJpbmtzY2FwZTpwZXJzcDNkIgogICAgICAgaW5rc2NhcGU6dnBfeD0iMCA6IDMyIDogMSIKICAgICAgIGlua3NjYXBlOnZwX3k9IjAgOiAxMDAwIDogMCIKICAgICAgIGlua3NjYXBlOnZwX3o9IjY0IDogMzIgOiAxIgogICAgICAgaW5rc2NhcGU6cGVyc3AzZC1vcmlnaW49IjMyIDogMjEuMzMzMzMzIDogMSIKICAgICAgIGlkPSJwZXJzcGVjdGl2ZTU4MjkiIC8+CiAgICA8cmFkaWFsR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDYzNDkiCiAgICAgICBpZD0icmFkaWFsR3JhZGllbnQ2MzU1IgogICAgICAgY3g9IjExMDMuNjM5OSIKICAgICAgIGN5PSIxNDI0LjQ0NjUiCiAgICAgICBmeD0iMTEwMy42Mzk5IgogICAgICAgZnk9IjE0MjQuNDQ2NSIKICAgICAgIHI9IjE5NC40MDYxNCIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLTEuNDMwNzQ5OSwtMS4zNjA1MTU2ZS03LC0xLjIwMjcxM2UtOCwwLjEyNjQ4MDEsMjY3NC43NDg4LDEyNDQuMjgyNikiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzgxMCIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4MTYiCiAgICAgICB4MT0iMzYuNDY1MzciCiAgICAgICB5MT0iNDEuOTk4Njc2IgogICAgICAgeDI9IjI2LjIzMjk0NiIKICAgICAgIHkyPSItMC43OTE0NjM1NSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNjY0OTY2MDQsMC42NzQwMzYzMiwtMC42NjQ5NjYwNCwwLjY3NDAzNjMyLDMxLjk2NDI4NSwtMTEuMjkzMDg3KSIKICAgICAgIHkyPSIyOC4zOTkxODUiCiAgICAgICB4Mj0iMjUuNDQ1MjIzIgogICAgICAgeTE9IjQwLjIyNzUwOSIKICAgICAgIHgxPSI0My4yODg4OTEiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQwNzUiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzODkzIgogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODkzIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2QzZDdjZjtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDM4OTUiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AzODk3IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgeTI9IjI4LjM5OTE4NSIKICAgICAgIHgyPSIyNS40NDUyMjMiCiAgICAgICB5MT0iNDAuMjI3NTA5IgogICAgICAgeDE9IjQzLjI4ODg5MSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC42NjQ5NjYwNCwwLjY3NDAzNjMyLC0wLjY2NDk2NjA0LDAuNjc0MDM2MzIsMjQuOTc0NDksLTUuOTAwNzk2KSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzEwNyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDM4OTMiCiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDM5MDUiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzOTE5IgogICAgICAgeDE9IjkiCiAgICAgICB5MT0iNTAiCiAgICAgICB4Mj0iNSIKICAgICAgIHkyPSIzOCIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzOTA1Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2QzZDdjZjtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDM5MDciIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AzOTA5IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzkwNSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM5MTEiCiAgICAgICB4MT0iOC41IgogICAgICAgeTE9IjQ4LjUiCiAgICAgICB4Mj0iNS41IgogICAgICAgeTI9IjM5LjUiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgeTI9IjM5LjUiCiAgICAgICB4Mj0iNS41IgogICAgICAgeTE9IjQ4LjUiCiAgICAgICB4MT0iOC41IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMDQ3IgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzkwNSIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzkwNSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4ODUiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHgxPSI4LjUiCiAgICAgICB5MT0iNDguNSIKICAgICAgIHgyPSI1LjUiCiAgICAgICB5Mj0iMzkuNSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzAyOSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4ODciCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC42NjQ5NjYwNCwwLjY3NDAzNjMyLC0wLjY2NDk2NjA0LDAuNjc0MDM2MzIsMjQuOTc0NDksLTUuOTAwNzk2KSIKICAgICAgIHgxPSI0My4yODg4OTEiCiAgICAgICB5MT0iNDAuMjI3NTA5IgogICAgICAgeDI9IjI1LjQ0NTIyMyIKICAgICAgIHkyPSIyOC4zOTkxODUiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDMwMjMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODg5IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICB4MT0iOSIKICAgICAgIHkxPSI1MCIKICAgICAgIHgyPSI1IgogICAgICAgeTI9IjM4IiAvPgogIDwvZGVmcz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6em9vbT0iOS42ODc1IgogICAgIGlua3NjYXBlOmN4PSIzMiIKICAgICBpbmtzY2FwZTpjeT0iMzIiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJweCIKICAgICBpbmtzY2FwZTpncmlkLWJib3g9InRydWUiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxNTM2IgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjgwMSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTgiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii04IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgc2hvd2d1aWRlcz0idHJ1ZSIKICAgICBpbmtzY2FwZTpndWlkZS1iYm94PSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtZ2xvYmFsPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtYmJveD0idHJ1ZSIKICAgICBpbmtzY2FwZTpvYmplY3QtcGF0aHM9ImZhbHNlIgogICAgIGlua3NjYXBlOnNuYXAtbm9kZXM9InRydWUiPgogICAgPGlua3NjYXBlOmdyaWQKICAgICAgIHR5cGU9Inh5Z3JpZCIKICAgICAgIGlkPSJncmlkMjk5MyIKICAgICAgIGVtcHNwYWNpbmc9IjIiCiAgICAgICB2aXNpYmxlPSJ0cnVlIgogICAgICAgZW5hYmxlZD0idHJ1ZSIKICAgICAgIHNuYXB2aXNpYmxlZ3JpZGxpbmVzb25seT0idHJ1ZSIgLz4KICA8L3NvZGlwb2RpOm5hbWVkdmlldz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE1ODI2Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZSAvPgogICAgICAgIDxkYzpjcmVhdG9yPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+W1dhbmRlcmVyRmFuXTwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6Y3JlYXRvcj4KICAgICAgICA8ZGM6dGl0bGU+VGVjaERyYXdfRGltZW5zaW9uX1JhZGl1czwvZGM6dGl0bGU+CiAgICAgICAgPGRjOmRhdGU+MjAxNi0wNC0yNzwvZGM6ZGF0ZT4KICAgICAgICA8ZGM6cmVsYXRpb24+aHR0cDovL3d3dy5mcmVlY2Fkd2ViLm9yZy93aWtpL2luZGV4LnBocD90aXRsZT1BcnR3b3JrPC9kYzpyZWxhdGlvbj4KICAgICAgICA8ZGM6cHVibGlzaGVyPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+RnJlZUNBRDwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6cHVibGlzaGVyPgogICAgICAgIDxkYzppZGVudGlmaWVyPkZyZWVDQUQvc3JjL01vZC9UZWNoRHJhdy9HdWkvUmVzb3VyY2VzL2ljb25zL1RlY2hEcmF3X0RpbWVuc2lvbl9SYWRpdXMuc3ZnPC9kYzppZGVudGlmaWVyPgogICAgICAgIDxkYzpyaWdodHM+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5GcmVlQ0FEIExHUEwyKzwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6cmlnaHRzPgogICAgICAgIDxjYzpsaWNlbnNlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xncGwtMy4wLmVuLmh0bWwiPmh0dHBzOi8vd3d3LmdudS5vcmcvY29weWxlZnQvbGVzc2VyLmh0bWw8L2NjOmxpY2Vuc2U+CiAgICAgICAgPGRjOmNvbnRyaWJ1dG9yPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+W2Fncnlzb25dIEFsZXhhbmRlciBHcnlzb248L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOmNvbnRyaWJ1dG9yPgogICAgICAgIDxkYzpzdWJqZWN0PgogICAgICAgICAgPHJkZjpCYWc+CiAgICAgICAgICAgIDxyZGY6bGk+YXJyb3c8L3JkZjpsaT4KICAgICAgICAgICAgPHJkZjpsaT5yYWRpdXM8L3JkZjpsaT4KICAgICAgICAgICAgPHJkZjpsaT5hcmM8L3JkZjpsaT4KICAgICAgICAgIDwvcmRmOkJhZz4KICAgICAgICA8L2RjOnN1YmplY3Q+CiAgICAgICAgPGRjOmRlc2NyaXB0aW9uPkFycm93IHBvaW50aW5nIGZyb20gY2VudHJlIHRvIGFyYzwvZGM6ZGVzY3JpcHRpb24+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaWQ9ImxheWVyMSIKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIj4KICAgIDxwYXRoCiAgICAgICBzb2RpcG9kaTp0eXBlPSJhcmMiCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMzAyYjAwO3N0cm9rZS13aWR0aDo3LjQ0MTc2MzQwMDAwMDAwMDEwO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjAiCiAgICAgICBpZD0icGF0aDM3NjUiCiAgICAgICBzb2RpcG9kaTpjeD0iMTYiCiAgICAgICBzb2RpcG9kaTpjeT0iNDIiCiAgICAgICBzb2RpcG9kaTpyeD0iNDAiCiAgICAgICBzb2RpcG9kaTpyeT0iNDAiCiAgICAgICBkPSJNIDEzLjI1OTY4MSwyLjA5Mzk3NzMgQSA0MCw0MCAwIDAgMSA1Niw0Mi4wMDI4NiIKICAgICAgIHNvZGlwb2RpOnN0YXJ0PSI0LjY0MzgyNzMiCiAgICAgICBzb2RpcG9kaTplbmQ9IjYuMjgzMjU2OCIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMDc1MDE0LDAsMCwxLjA3NTAxNCwtNC4yMDA3ODM5LDYuODQ2MzM3OCkiCiAgICAgICBzb2RpcG9kaTpvcGVuPSJ0cnVlIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjU2LjE0NzAzIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjU2LjE0NzAzIiAvPgogICAgPHBhdGgKICAgICAgIHNvZGlwb2RpOnR5cGU9ImFyYyIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOnVybCgjbGluZWFyR3JhZGllbnQzODE2KTtzdHJva2Utd2lkdGg6My43MjA4ODE3O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjAiCiAgICAgICBpZD0icGF0aDM3NjUtMSIKICAgICAgIHNvZGlwb2RpOmN4PSIxNiIKICAgICAgIHNvZGlwb2RpOmN5PSI0MiIKICAgICAgIHNvZGlwb2RpOnJ4PSI0MCIKICAgICAgIHNvZGlwb2RpOnJ5PSI0MCIKICAgICAgIGQ9Ik0gMTMuMzAxMDQ1LDIuMDkxMTU4NCBBIDQwLDQwIDAgMCAxIDU2LDQyLjAwMjg2IgogICAgICAgc29kaXBvZGk6c3RhcnQ9IjQuNjQ0ODYzOCIKICAgICAgIHNvZGlwb2RpOmVuZD0iNi4yODMyNTY4IgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMS4wNzUwMTQsMCwwLDEuMDc1MDE0LC00LjIwMTk4NTUsNi44NDk0MzM3KSIKICAgICAgIHNvZGlwb2RpOm9wZW49InRydWUiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTYuMTQ3MDMiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTYuMTQ3MDMiIC8+CiAgICA8cGF0aAogICAgICAgc29kaXBvZGk6dHlwZT0iYXJjIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2ZjZTk0ZjtzdHJva2Utd2lkdGg6MS44NjA0NDA4NTAwMDAwMDAwMDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowIgogICAgICAgaWQ9InBhdGgzNzY1LTEtNyIKICAgICAgIHNvZGlwb2RpOmN4PSIxNiIKICAgICAgIHNvZGlwb2RpOmN5PSI0MiIKICAgICAgIHNvZGlwb2RpOnJ4PSI0MCIKICAgICAgIHNvZGlwb2RpOnJ5PSI0MCIKICAgICAgIGQ9Ik0gMTIuNjU4MjYsMi4xMzk4MzQ3IEEgNDAsNDAgMCAwIDEgNTUuOTgzNDg3LDQzLjE0OTIzOCIKICAgICAgIHNvZGlwb2RpOnN0YXJ0PSI0LjYyODc0OCIKICAgICAgIHNvZGlwb2RpOmVuZD0iNi4zMTE5MjAyIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMS4wNzUwMTQsMCwwLDEuMDc1MDE0LC0zLjIwMTk4NTUsNS44NDk0MzM3KSIKICAgICAgIHNvZGlwb2RpOm9wZW49InRydWUiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTYuMTQ3MDMiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTYuMTQ3MDMiIC8+CiAgICA8ZwogICAgICAgaWQ9ImczODc0IgogICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEuMDEwMjA1LDEuNjA3NzA5KSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1Ni4xNDcwMyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1Ni4xNDcwMyI+CiAgICAgIDxwYXRoCiAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMzMzMzMzMywwLDAsMS4zMzMzMzMxLDUuNjc2ODcxOSwtMTEuMjc0MzY0KSIKICAgICAgICAgZD0ibSAxMyw0NCBhIDYsNiAwIDAgMSAtNiw2IDYsNiAwIDAgMSAtNiwtNiA2LDYgMCAwIDEgNiwtNiA2LDYgMCAwIDEgNiw2IHoiCiAgICAgICAgIHNvZGlwb2RpOnJ5PSI2IgogICAgICAgICBzb2RpcG9kaTpyeD0iNiIKICAgICAgICAgc29kaXBvZGk6Y3k9IjQ0IgogICAgICAgICBzb2RpcG9kaTpjeD0iNyIKICAgICAgICAgaWQ9InBhdGgzMDM3IgogICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50Mzg4NSk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMzMDJiMDA7c3Ryb2tlLXdpZHRoOjEuNTAwMDAwMDAwMDAwMDAwMDA7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MCIKICAgICAgICAgc29kaXBvZGk6dHlwZT0iYXJjIiAvPgogICAgICA8cGF0aAogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBpZD0icGF0aDM4NjQtNCIKICAgICAgICAgZD0ibSAxMy4wMDUxMDIsNDguMDIyMTA5IDEuMzI5OTMyLC02Ljc0MDM2MiIKICAgICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgICA8cGF0aAogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2NjY2NjY2NjYyIKICAgICAgICAgaWQ9InBhdGgzNzcwLTEiCiAgICAgICAgIGQ9Im0gMjcuNjM0MzU1LDI1LjEwNDg3NCAyLjY1OTg2NSwyLjY5NjE0NiAtMTQuNjI5MjU0LDE0LjgyODggLTIuNjU0NzYxLDAuNzYyNDcxIGMgMCw0LjA0NDIxOSAtMC42NzAwNjgsMy45NTU3ODIgLTEuMzM1MDM1LDUuOTc3ODkyIGwgLTAuNjY0OTY1LDIuMDIyMTA4IDEuOTk0ODk3LC0wLjY3NDAzNSBDIDE1LDUwLjA0NDIxOSAxNi4wMjA0MDgsNDguMzkyMjkxIDIwLjAxMDIwNSw0OC4zOTIyOTEgbCAtMC4zNTU0NDIsLTEuNzE4MjU0IDE0LjYyOTI1MiwtMTQuODI4Nzk5IDIuNjU5ODY1LDIuNjk2MTQ2IGMgMCwtNC4wNDQyMTkgMC42NjQ5NjUsLTcuNDE0NCAxLjMyOTkzMiwtOS40MzY1MSBsIDAuNjY0OTY1LC0yLjAyMjEwOCAtMS45OTQ4OTcsMC42NzQwMzUgYyAtMS45OTQ4OTksMC42NzQwMzcgLTUuMzE5NzI4LDEuMzQ4MDczIC05LjMwOTUyNSwxLjM0ODA3MyB6IgogICAgICAgICBzdHlsZT0iZm9udC1zaXplOm1lZGl1bTtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO3RleHQtaW5kZW50OjA7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWRlY29yYXRpb246bm9uZTtsaW5lLWhlaWdodDpub3JtYWw7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3dvcmQtc3BhY2luZzpub3JtYWw7dGV4dC10cmFuc2Zvcm06bm9uZTtkaXJlY3Rpb246bHRyO2Jsb2NrLXByb2dyZXNzaW9uOnRiO3dyaXRpbmctbW9kZTpsci10Yjt0ZXh0LWFuY2hvcjpzdGFydDtiYXNlbGluZS1zaGlmdDpiYXNlbGluZTtjb2xvcjojMDAwMDAwO2ZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDM4ODcpO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZiIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgICAgPHBhdGgKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGgzODY0IgogICAgICAgICBkPSJtIDM1LjYxMzk0NywyNS4xMDQ4NzQgLTUuNjAzNzQyLDEuMjg3NDE3IgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmNlOTRmO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlkPSJwYXRoMzg2NiIKICAgICAgICAgZD0iTSAzNi45NDM4OCwyMy43NTY4MDEgMTEuMDI5OTAxLDQ5Ljk3MjQzNCIKICAgICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2ZjZTk0ZjtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGgzODY4IgogICAgICAgICBkPSJtIDMxLjAxMDIwNSwyNy4zOTIyOTEgMi42MDg4NDQsLTAuMjY1MzA3IgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmNlOTRmO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlkPSJwYXRoMzg2OC04IgogICAgICAgICBkPSJNIDE1LjY2NDk2Niw0Mi42Mjk4MiAxNSw0NiIKICAgICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2ZmZmZmZjtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgICA8cGF0aAogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2NjY2NjY2NjYyIKICAgICAgICAgaWQ9InBhdGgzNzcwLTkiCiAgICAgICAgIGQ9Im0gMjcuODY3MzQ5LDI0LjUzNTE0NyAyLjg1NzE0NCwyLjg1NzE0NCAtMTUuNzE0Mjg5LDE1LjcxNDI4NyAxMGUtNywwLjI4NTcxMyBjIDAsNC4yODU3MTYgLTMuNTcxNDI4LDQuNzE0Mjg2IC00LjI4NTcxNSw2Ljg1NzE0NCBsIDIuMjg1NzE1LDAuMTQyODU2IC0wLjg1NzE0MywxLjI4NTcxNiBjIDIuMTQyODU3LC0wLjcxNDI4NyAxLjU3MTQyNywtNC4yODU3MTYgNS44NTcxNDMsLTQuMjg1NzE2IGwgMS4yODU3MTUsMCAxNS43MTQyODYsLTE1LjcxNDI4NiAyLjg1NzE0NCwyLjg1NzE0NCBjIDAsLTQuMjg1NzE2IDAuNzE0Mjg1LC03Ljg1NzE0NCAxLjQyODU3MSwtMTAuMDAwMDAyIGwgMC43MTQyODUsLTIuMTQyODU2IC0yLjE0Mjg1NiwwLjcxNDI4NCBjIC0yLjE0Mjg1OCwwLjcxNDI4NyAtNS43MTQyODYsMS40Mjg1NzIgLTEwLjAwMDAwMSwxLjQyODU3MiB6IgogICAgICAgICBzdHlsZT0iZm9udC1zaXplOm1lZGl1bTtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO3RleHQtaW5kZW50OjA7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWRlY29yYXRpb246bm9uZTtsaW5lLWhlaWdodDpub3JtYWw7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3dvcmQtc3BhY2luZzpub3JtYWw7dGV4dC10cmFuc2Zvcm06bm9uZTtkaXJlY3Rpb246bHRyO2Jsb2NrLXByb2dyZXNzaW9uOnRiO3dyaXRpbmctbW9kZTpsci10Yjt0ZXh0LWFuY2hvcjpzdGFydDtiYXNlbGluZS1zaGlmdDpiYXNlbGluZTtjb2xvcjojMDAwMDAwO2ZpbGw6bm9uZTtzdHJva2U6IzMwMmIwMDtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZTtmb250LWZhbWlseTpzYW5zLXNlcmlmIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogICAgICA8cGF0aAogICAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4LjAxMDIwNSwzLjM5MjI5MSkiCiAgICAgICAgIGQ9Im0gMTMsNDQgYSA2LDYgMCAwIDEgLTYsNiA2LDYgMCAwIDEgLTYsLTYgNiw2IDAgMCAxIDYsLTYgNiw2IDAgMCAxIDYsNiB6IgogICAgICAgICBzb2RpcG9kaTpyeT0iNiIKICAgICAgICAgc29kaXBvZGk6cng9IjYiCiAgICAgICAgIHNvZGlwb2RpOmN5PSI0NCIKICAgICAgICAgc29kaXBvZGk6Y3g9IjciCiAgICAgICAgIGlkPSJwYXRoMzAzNy04IgogICAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50Mzg4OSk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiNmY2U5NGY7c3Ryb2tlLXdpZHRoOjEuOTk5OTk5NjQwMDAwMDAwMDA7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MCIKICAgICAgICAgc29kaXBvZGk6dHlwZT0iYXJjIiAvPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==
"""
Dim_Length_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjY0cHgiCiAgIGhlaWdodD0iNjRweCIKICAgaWQ9InN2ZzU4MjEiCiAgIHNvZGlwb2RpOnZlcnNpb249IjAuMzIiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuMCByMTUyOTkiCiAgIHNvZGlwb2RpOmRvY25hbWU9IkRpbWVuc2lvbl9MZW5ndGguc3ZnIgogICBpbmtzY2FwZTpvdXRwdXRfZXh0ZW5zaW9uPSJvcmcuaW5rc2NhcGUub3V0cHV0LnN2Zy5pbmtzY2FwZSIKICAgdmVyc2lvbj0iMS4xIgogICBpbmtzY2FwZTpleHBvcnQtZmlsZW5hbWU9Ii9ob21lL3VzZXIvRG93bmxvYWRzL2NhZC9teXN0dWZmL2ljb25zL0RyYXdpbmcvVGVjaERyYXdfRGltZW5zaW9uX0xlbmd0aF8yXzMycHgucG5nIgogICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNDUiCiAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI0NSI+CiAgPGRlZnMKICAgICBpZD0iZGVmczU4MjMiPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMDI2IgogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIj4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzMDI4IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNjNGEwMDA7c3RvcC1vcGFjaXR5OjEiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMzAzMCIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmNlOTRmO3N0b3Atb3BhY2l0eToxIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzAyMCIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyI+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMzAyMiIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojYzRhMDAwO3N0b3Atb3BhY2l0eToxIiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDMwMjQiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZjZTk0ZjtzdG9wLW9wYWNpdHk6MSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMwMTQiCiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDMwMTYiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2M0YTAwMDtzdG9wLW9wYWNpdHk6MSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzMDE4IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmY2U5NGY7c3RvcC1vcGFjaXR5OjEiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ2MzQ5Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3A2MzUxIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eTowOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDYzNTMiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMzc3Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzAwMTlhMztzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzMzc5IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDA2OWZmO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDMzODEiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzMzc3IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzM4MyIKICAgICAgIHgxPSI5MDEuMTg3NSIKICAgICAgIHkxPSIxMTkwLjg3NSIKICAgICAgIHgyPSIxMjY3LjkwNjIiCiAgICAgICB5Mj0iMTE5MC44NzUiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLTEsMCwwLDEsMjE5OS4zNTYsMCkiIC8+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMzIgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfej0iNjQgOiAzMiA6IDEiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMzIgOiAyMS4zMzMzMzMgOiAxIgogICAgICAgaWQ9InBlcnNwZWN0aXZlNTgyOSIgLz4KICAgIDxyYWRpYWxHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NjM0OSIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDYzNTUiCiAgICAgICBjeD0iMTEwMy42Mzk5IgogICAgICAgY3k9IjE0MjQuNDQ2NSIKICAgICAgIGZ4PSIxMTAzLjYzOTkiCiAgICAgICBmeT0iMTQyNC40NDY1IgogICAgICAgcj0iMTk0LjQwNjE0IgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgtMS40MzA3NDk5LC0xLjM2MDUxNTZlLTcsLTEuMjAyNzEzZS04LDAuMTI2NDgwMSwyNjc0Ljc0ODgsMTI0NC4yODI2KSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzODkzIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mzg5OSIKICAgICAgIHgxPSIzNSIKICAgICAgIHkxPSI1MCIKICAgICAgIHgyPSIzMSIKICAgICAgIHkyPSIxNiIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODkzIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2QzZDdjZjtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDM4OTUiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmZmZmZmY7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AzODk3IiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjcwNzEwNjc4LDAuNzA3MTA2NzgsLTAuNzA3MTA2NzgsMC43MDcxMDY3OCwzNC43NTczNTksLTkuOTcwNTYzKSIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDMwMTQiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzOTA3IgogICAgICAgeDE9IjM5Ljk0OTc0OSIKICAgICAgIHkxPSIxMC4zOTMzOTgiCiAgICAgICB4Mj0iMjEuNTY0OTcyIgogICAgICAgeTI9IjQuNzM2NTQ0MSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNjY0OTY2MDQsMC42NzQwMzYzMiwtMC42NjQ5NjYwNCwwLjY3NDAzNjMyLDMxLjk2NDI4NSwtMTEuMjkzMDg3KSIKICAgICAgIHkyPSIyOC4zOTkxODUiCiAgICAgICB4Mj0iMjUuNDQ1MjIzIgogICAgICAgeTE9IjQwLjIyNzUwOSIKICAgICAgIHgxPSI0My4yODg4OTEiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDQwNzUiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzMDIwIgogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNzA3MTA2NzgsMC43MDcxMDY3OCwtMC43MDcxMDY3OCwwLjcwNzEwNjc4LDM0LjcwNDEyNywtOS45NDI2Nzk2KSIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDM4OTMtNCIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM5MDctNyIKICAgICAgIHgxPSIzOS45NDk3NDkiCiAgICAgICB5MT0iMTAuMzkzMzk4IgogICAgICAgeDI9IjIxLjU2NDk3MiIKICAgICAgIHkyPSI0LjczNjU0NDEiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mzg5My00Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2QzZDdjZjtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDM4OTUtMCIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDM4OTctOSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIHkyPSI0LjczNjU0NDEiCiAgICAgICB4Mj0iMjEuNTY0OTcyIgogICAgICAgeTE9IjEwLjM5MzM5OCIKICAgICAgIHgxPSIzOS45NDk3NDkiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuNzA3MTA2NzgsMC43MDcxMDY3OCwtMC43MDcxMDY3OCwwLjcwNzEwNjc4LC0xLjI0MjY0MSwyNi4wMjk0MzcpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMDY1IgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzAyNiIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgLz4KICA8L2RlZnM+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjkuNjg3NSIKICAgICBpbmtzY2FwZTpjeD0iMzIiCiAgICAgaW5rc2NhcGU6Y3k9IjMyIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Z3JpZC1iYm94PSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTUzNiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSI4MDEiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii04IgogICAgIGlua3NjYXBlOndpbmRvdy15PSItOCIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIHNob3dndWlkZXM9InRydWUiCiAgICAgaW5rc2NhcGU6Z3VpZGUtYmJveD0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLWdsb2JhbD0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLWJib3g9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC1ub2Rlcz0iZmFsc2UiPgogICAgPGlua3NjYXBlOmdyaWQKICAgICAgIHR5cGU9Inh5Z3JpZCIKICAgICAgIGlkPSJncmlkMjk5NCIKICAgICAgIGVtcHNwYWNpbmc9IjIiCiAgICAgICB2aXNpYmxlPSJ0cnVlIgogICAgICAgZW5hYmxlZD0idHJ1ZSIKICAgICAgIHNuYXB2aXNpYmxlZ3JpZGxpbmVzb25seT0idHJ1ZSIgLz4KICA8L3NvZGlwb2RpOm5hbWVkdmlldz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE1ODI2Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZSAvPgogICAgICAgIDxkYzpjcmVhdG9yPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+W1dhbmRlcmVyRmFuXTwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6Y3JlYXRvcj4KICAgICAgICA8ZGM6dGl0bGU+VGVjaERyYXdfRGltZW5zaW9uX0xlbmd0aDwvZGM6dGl0bGU+CiAgICAgICAgPGRjOmRhdGU+MjAxNi0wNC0yNzwvZGM6ZGF0ZT4KICAgICAgICA8ZGM6cmVsYXRpb24+aHR0cDovL3d3dy5mcmVlY2Fkd2ViLm9yZy93aWtpL2luZGV4LnBocD90aXRsZT1BcnR3b3JrPC9kYzpyZWxhdGlvbj4KICAgICAgICA8ZGM6cHVibGlzaGVyPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+RnJlZUNBRDwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6cHVibGlzaGVyPgogICAgICAgIDxkYzppZGVudGlmaWVyPkZyZWVDQUQvc3JjL01vZC9UZWNoRHJhdy9HdWkvUmVzb3VyY2VzL2ljb25zL1RlY2hEcmF3X0RpbWVuc2lvbl9MZW5ndGguc3ZnPC9kYzppZGVudGlmaWVyPgogICAgICAgIDxkYzpyaWdodHM+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5GcmVlQ0FEIExHUEwyKzwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6cmlnaHRzPgogICAgICAgIDxjYzpsaWNlbnNlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xncGwtMy4wLmVuLmh0bWwiPmh0dHBzOi8vd3d3LmdudS5vcmcvY29weWxlZnQvbGVzc2VyLmh0bWw8L2NjOmxpY2Vuc2U+CiAgICAgICAgPGRjOmNvbnRyaWJ1dG9yPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+W2Fncnlzb25dIEFsZXhhbmRlciBHcnlzb248L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOmNvbnRyaWJ1dG9yPgogICAgICAgIDxkYzpzdWJqZWN0PgogICAgICAgICAgPHJkZjpCYWc+CiAgICAgICAgICAgIDxyZGY6bGk+ZG91YmxlIGFycm93PC9yZGY6bGk+CiAgICAgICAgICAgIDxyZGY6bGk+ZGlhZ29uYWw8L3JkZjpsaT4KICAgICAgICAgICAgPHJkZjpsaT5hcnJvdzwvcmRmOmxpPgogICAgICAgICAgPC9yZGY6QmFnPgogICAgICAgIDwvZGM6c3ViamVjdD4KICAgICAgICA8ZGM6ZGVzY3JpcHRpb24+RG91YmxlIGFycm93IGF0IGFuZ2xlIGJldHdlZW4gdHdvIGRpYWdvbmFsIGJhcnM8L2RjOmRlc2NyaXB0aW9uPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlkPSJsYXllcjEiCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciI+CiAgICA8cGF0aAogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHN0eWxlPSJmb250LXNpemU6bWVkaXVtO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7dGV4dC1pbmRlbnQ6MDt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtZGVjb3JhdGlvbjpub25lO2xpbmUtaGVpZ2h0Om5vcm1hbDtsZXR0ZXItc3BhY2luZzpub3JtYWw7d29yZC1zcGFjaW5nOm5vcm1hbDt0ZXh0LXRyYW5zZm9ybTpub25lO2RpcmVjdGlvbjpsdHI7YmxvY2stcHJvZ3Jlc3Npb246dGI7d3JpdGluZy1tb2RlOmxyLXRiO3RleHQtYW5jaG9yOnN0YXJ0O2Jhc2VsaW5lLXNoaWZ0OmJhc2VsaW5lO2NvbG9yOiMwMDAwMDA7ZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50NDA3NSk7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZiIKICAgICAgIGQ9Im0gMzQuNjI0MTUsMTkuNzEyNTgzIDIuNjU5ODY1LDIuNjk2MTQ2IC0xNC42MjkyNTQsMTQuODI4OCAtMi42NTk4NjQsLTIuNjk2MTQ3IGMgMCw0LjA0NDIxOSAtMC42NjQ5NjUsNy40MTQ0IC0xLjMyOTkzMiw5LjQzNjUxIEwgMTgsNDYgMTkuOTk0ODk3LDQ1LjMyNTk2NSBjIDEuOTk0ODk4LC0wLjY3NDAzNyA1LjMxOTcyOCwtMS4zNDgwNzMgOS4zMDk1MjUsLTEuMzQ4MDczIGwgLTIuNjU5ODY0LC0yLjY5NjE0NiAxNC42MjkyNTIsLTE0LjgyODc5OSAyLjY1OTg2NSwyLjY5NjE0NiBjIDAsLTQuMDQ0MjE5IDAuNjY0OTY1LC03LjQxNDQgMS4zMjk5MzIsLTkuNDM2NTEgbCAwLjY2NDk2NSwtMi4wMjIxMDggLTEuOTk0ODk3LDAuNjc0MDM1IGMgLTEuOTk0ODk5LDAuNjc0MDM3IC01LjMxOTcyOCwxLjM0ODA3MyAtOS4zMDk1MjUsMS4zNDgwNzMgeiIKICAgICAgIGlkPSJwYXRoMzc3MC0xIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjY2NjY2NjY2NjY2MiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMjAwMDY5IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjUxLjIwMDA2OSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZm9udC1zaXplOm1lZGl1bTtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO3RleHQtaW5kZW50OjA7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWRlY29yYXRpb246bm9uZTtsaW5lLWhlaWdodDpub3JtYWw7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3dvcmQtc3BhY2luZzpub3JtYWw7dGV4dC10cmFuc2Zvcm06bm9uZTtkaXJlY3Rpb246bHRyO2Jsb2NrLXByb2dyZXNzaW9uOnRiO3dyaXRpbmctbW9kZTpsci10Yjt0ZXh0LWFuY2hvcjpzdGFydDtiYXNlbGluZS1zaGlmdDpiYXNlbGluZTtjb2xvcjojMDAwMDAwO2ZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDM5MDcpO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTojMzAyYjAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWYiCiAgICAgICBkPSJtIDQzLDMgLTQsNCAxOCwxOCA0LC00IHoiCiAgICAgICBpZD0icGF0aDM3ODEtMSIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjUxLjIwMDA2OSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4yMDAwNjkiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2ZjZTk0ZjtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0iTSA0Mi4zNDQxNDMsNS4yMDA3NTAyIDU4Ljg1NjYwNywyMS42ODQ1MzUiCiAgICAgICBpZD0icGF0aDMwMTQiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1MS4yMDAwNjkiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTEuMjAwMDY5IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNmY2U5NGY7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gNDIuNjAzNzQyLDE5LjcxMjU4MyAtNi42NDk2NTksMS4zNDgwNzQiCiAgICAgICBpZD0icGF0aDM4NjQiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1MS4yMDAwNjkiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTEuMjAwMDY5IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNmY2U5NGY7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTkuOTk0ODk3LDQyLjYyOTgxOCAxLjMyOTkzMiwtNi43NDAzNjIiCiAgICAgICBpZD0icGF0aDM4NjQtNCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjUxLjIwMDA2OSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4yMDAwNjkiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2ZjZTk0ZjtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Ik0gNDMuOTMzNjc1LDE4LjM2NDUxIDE4LjAxOTY5Niw0NC41ODAxNDMiCiAgICAgICBpZD0icGF0aDM4NjYiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1MS4yMDAwNjkiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTEuMjAwMDY5IiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNmY2U5NGY7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMzcuMjg0MDE1LDIyLjQwODcyOSAzLjMyNDgyOSwtMC42NzQwMzYiCiAgICAgICBpZD0icGF0aDM4NjgiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjUxLjIwMDA2OSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4yMDAwNjkiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2ZjZTk0ZjtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAyMi42NTQ3NjEsMzcuMjM3NTI5IC0wLjY2NDk2NiwzLjM3MDE4IgogICAgICAgaWQ9InBhdGgzODY4LTgiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjUxLjIwMDA2OSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4yMDAwNjkiIC8+CiAgICA8cGF0aAogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHN0eWxlPSJmb250LXNpemU6bWVkaXVtO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7dGV4dC1pbmRlbnQ6MDt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtZGVjb3JhdGlvbjpub25lO2xpbmUtaGVpZ2h0Om5vcm1hbDtsZXR0ZXItc3BhY2luZzpub3JtYWw7d29yZC1zcGFjaW5nOm5vcm1hbDt0ZXh0LXRyYW5zZm9ybTpub25lO2RpcmVjdGlvbjpsdHI7YmxvY2stcHJvZ3Jlc3Npb246dGI7d3JpdGluZy1tb2RlOmxyLXRiO3RleHQtYW5jaG9yOnN0YXJ0O2Jhc2VsaW5lLXNoaWZ0OmJhc2VsaW5lO2NvbG9yOiMwMDAwMDA7ZmlsbDpub25lO3N0cm9rZTojMzAyYjAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWYiCiAgICAgICBkPSJNIDM0Ljg1NzE0NCwxOS4xNDI4NTYgMzcuNzE0Mjg4LDIyIDIxLjk5OTk5OSwzNy43MTQyODcgMTkuMTQyODU3LDM0Ljg1NzE0MiBjIDAsNC4yODU3MTYgLTAuNzE0Mjg1LDcuODU3MTQ0IC0xLjQyODU3MiwxMC4wMDAwMDIgTCAxNyw0NyAxOS4xNDI4NTcsNDYuMjg1NzE2IGMgMi4xNDI4NTcsLTAuNzE0Mjg3IDUuNzE0Mjg1LC0xLjQyODU3MiAxMC4wMDAwMDEsLTEuNDI4NTcyIEwgMjYuMjg1NzE1LDQyIDQyLjAwMDAwMSwyNi4yODU3MTQgbCAyLjg1NzE0NCwyLjg1NzE0NCBjIDAsLTQuMjg1NzE2IDAuNzE0Mjg1LC03Ljg1NzE0NCAxLjQyODU3MSwtMTAuMDAwMDAyIEwgNDcuMDAwMDAxLDE3IDQ0Ljg1NzE0NSwxNy43MTQyODQgYyAtMi4xNDI4NTgsMC43MTQyODcgLTUuNzE0Mjg2LDEuNDI4NTcyIC0xMC4wMDAwMDEsMS40Mjg1NzIgeiIKICAgICAgIGlkPSJwYXRoMzc3MC05IgogICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjY2NjY2NjY2NjY2MiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMjAwMDY5IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjUxLjIwMDA2OSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZm9udC1zaXplOm1lZGl1bTtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO3RleHQtaW5kZW50OjA7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWRlY29yYXRpb246bm9uZTtsaW5lLWhlaWdodDpub3JtYWw7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3dvcmQtc3BhY2luZzpub3JtYWw7dGV4dC10cmFuc2Zvcm06bm9uZTtkaXJlY3Rpb246bHRyO2Jsb2NrLXByb2dyZXNzaW9uOnRiO3dyaXRpbmctbW9kZTpsci10Yjt0ZXh0LWFuY2hvcjpzdGFydDtiYXNlbGluZS1zaGlmdDpiYXNlbGluZTtjb2xvcjojMDAwMDAwO2ZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDMwNjUpO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTojMzAyYjAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLW9wYWNpdHk6MTtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDt2aXNpYmlsaXR5OnZpc2libGU7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWYiCiAgICAgICBkPSJtIDcsMzkgLTQsNCAxOCwxOCA0LC00IHoiCiAgICAgICBpZD0icGF0aDM3ODEtMS00IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2MiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMjAwMDY5IgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjUxLjIwMDA2OSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmNlOTRmO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJNIDYuMzQ0MTQzLDQxLjIwMDc1IDIyLjg1NjYwNyw1Ny42ODQ1MzUiCiAgICAgICBpZD0icGF0aDMwMTQtOCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjUxLjIwMDA2OSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4yMDAwNjkiIC8+CiAgPC9nPgo8L3N2Zz4K
"""
Dim_Angle_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjY0cHgiCiAgIGhlaWdodD0iNjRweCIKICAgaWQ9InN2ZzU4MjEiCiAgIHNvZGlwb2RpOnZlcnNpb249IjAuMzIiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuMCByMTUyOTkiCiAgIHNvZGlwb2RpOmRvY25hbWU9IkRpbWVuc2lvbl9BbmdsZS5zdmciCiAgIGlua3NjYXBlOm91dHB1dF9leHRlbnNpb249Im9yZy5pbmtzY2FwZS5vdXRwdXQuc3ZnLmlua3NjYXBlIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlua3NjYXBlOmV4cG9ydC1maWxlbmFtZT0iL21lZGlhL2RhdGEvWW9yaWsvRnJlZUNBRC9pY29ucy9Ta2V0Y2hlci5wbmciCiAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI0NSIKICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjQ1Ij4KICA8ZGVmcwogICAgIGlkPSJkZWZzNTgyMyI+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMwNDIiCiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDMwNDQiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2M0YTAwMDtzdG9wLW9wYWNpdHk6MSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzMDQ2IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmY2U5NGY7c3RvcC1vcGFjaXR5OjEiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMDM2IgogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIj4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzMDM4IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNjNGEwMDA7c3RvcC1vcGFjaXR5OjEiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMzA0MCIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmNlOTRmO3N0b3Atb3BhY2l0eToxIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzAzMCIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyI+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMzAzMiIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojYzRhMDAwO3N0b3Atb3BhY2l0eToxIiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDMwMzQiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZjZTk0ZjtzdG9wLW9wYWNpdHk6MSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMwMjQiCiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDMwMjYiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2M0YTAwMDtzdG9wLW9wYWNpdHk6MSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzMDI4IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmY2U5NGY7c3RvcC1vcGFjaXR5OjEiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzOTI5IgogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIj4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzOTMxIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNjNGEwMDA7c3RvcC1vcGFjaXR5OjEiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMzkzMyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmNlOTRmO3N0b3Atb3BhY2l0eToxIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzkwNSI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNkM2Q3Y2Y7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzOTA3IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzkwOSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDYzNDkiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAwMDAwO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDYzNTEiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wNjM1MyIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDMzNzciPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMDAxOWEzO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDMzNzkiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDY5ZmY7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzM4MSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDMzNzciCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMzgzIgogICAgICAgeDE9IjkwMS4xODc1IgogICAgICAgeTE9IjExOTAuODc1IgogICAgICAgeDI9IjEyNjcuOTA2MiIKICAgICAgIHkyPSIxMTkwLjg3NSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgtMSwwLDAsMSwyMTk5LjM1NiwwKSIgLz4KICAgIDxpbmtzY2FwZTpwZXJzcGVjdGl2ZQogICAgICAgc29kaXBvZGk6dHlwZT0iaW5rc2NhcGU6cGVyc3AzZCIKICAgICAgIGlua3NjYXBlOnZwX3g9IjAgOiAzMiA6IDEiCiAgICAgICBpbmtzY2FwZTp2cF95PSIwIDogMTAwMCA6IDAiCiAgICAgICBpbmtzY2FwZTp2cF96PSI2NCA6IDMyIDogMSIKICAgICAgIGlua3NjYXBlOnBlcnNwM2Qtb3JpZ2luPSIzMiA6IDIxLjMzMzMzMyA6IDEiCiAgICAgICBpZD0icGVyc3BlY3RpdmU1ODI5IiAvPgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ2MzQ5IgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50NjM1NSIKICAgICAgIGN4PSIxMTAzLjYzOTkiCiAgICAgICBjeT0iMTQyNC40NDY1IgogICAgICAgZng9IjExMDMuNjM5OSIKICAgICAgIGZ5PSIxNDI0LjQ0NjUiCiAgICAgICByPSIxOTQuNDA2MTQiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC0xLjQzMDc0OTksLTEuMzYwNTE1NmUtNywtMS4yMDI3MTNlLTgsMC4xMjY0ODAxLDI2NzQuNzQ4OCwxMjQ0LjI4MjYpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDM4OTMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzODk5IgogICAgICAgeDE9IjM1IgogICAgICAgeTE9IjUwIgogICAgICAgeDI9IjMxIgogICAgICAgeTI9IjE2IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM4OTMiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZDNkN2NmO3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wMzg5NSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDM4OTciIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzMDI0IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzAzMyIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIgogICAgICAgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjk2MjE0ODgsLTAuMjcyNTI0NjUsMC4yNzI1MjQ2NSwwLjk2MjE0ODgsNDguNjQ0MjgxLDE5LjQ0MzgwMikiCiAgICAgICB4MT0iMzQuMDkzNTg2IgogICAgICAgeTE9IjQ5LjcyOTg3NyIKICAgICAgIHgyPSIzMy44OTE2OTciCiAgICAgICB5Mj0iMTYuMTAzNjk3IiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzOTA1IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzkxMSIKICAgICAgIHgxPSI4LjUiCiAgICAgICB5MT0iNDguNSIKICAgICAgIHgyPSI1LjUiCiAgICAgICB5Mj0iMzkuNSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzMDM2IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzkxOSIKICAgICAgIHgxPSI5IgogICAgICAgeTE9IjUwIgogICAgICAgeDI9IjUiCiAgICAgICB5Mj0iMzgiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzkyOSIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDM5MjciCiAgICAgICB4MT0iMTkiCiAgICAgICB5MT0iMzkiCiAgICAgICB4Mj0iMjgiCiAgICAgICB5Mj0iOSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzMDQyIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mzk0MSIKICAgICAgIHgxPSIxOSIKICAgICAgIHkxPSIzOSIKICAgICAgIHgyPSIyOCIKICAgICAgIHkyPSI5IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDMwMzAiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzOTQ5IgogICAgICAgeDE9IjI2IgogICAgICAgeTE9IjUzIgogICAgICAgeDI9IjIyIgogICAgICAgeTI9IjQwIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgPC9kZWZzPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSI5LjY4NzUiCiAgICAgaW5rc2NhcGU6Y3g9IjMyIgogICAgIGlua3NjYXBlOmN5PSIzMiIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiCiAgICAgc2hvd2dyaWQ9InRydWUiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmdyaWQtYmJveD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE1MzYiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iODAxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTgiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBzaG93Z3VpZGVzPSJ0cnVlIgogICAgIGlua3NjYXBlOmd1aWRlLWJib3g9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC1nbG9iYWw9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC1iYm94PSJ0cnVlIj4KICAgIDxpbmtzY2FwZTpncmlkCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBpZD0iZ3JpZDI5OTMiCiAgICAgICBlbXBzcGFjaW5nPSIyIgogICAgICAgdmlzaWJsZT0idHJ1ZSIKICAgICAgIGVuYWJsZWQ9InRydWUiCiAgICAgICBzbmFwdmlzaWJsZWdyaWRsaW5lc29ubHk9InRydWUiIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNTgyNiI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGUgLz4KICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPltXYW5kZXJlckZhbl08L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOmNyZWF0b3I+CiAgICAgICAgPGRjOnRpdGxlPlRlY2hEcmF3X0RpbWVuc2lvbl9BbmdsZTwvZGM6dGl0bGU+CiAgICAgICAgPGRjOmRhdGU+MjAxNi0wNC0yNzwvZGM6ZGF0ZT4KICAgICAgICA8ZGM6cmVsYXRpb24+aHR0cDovL3d3dy5mcmVlY2Fkd2ViLm9yZy93aWtpL2luZGV4LnBocD90aXRsZT1BcnR3b3JrPC9kYzpyZWxhdGlvbj4KICAgICAgICA8ZGM6cHVibGlzaGVyPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+RnJlZUNBRDwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6cHVibGlzaGVyPgogICAgICAgIDxkYzppZGVudGlmaWVyPkZyZWVDQUQvc3JjL01vZC9UZWNoRHJhdy9HdWkvUmVzb3VyY2VzL2ljb25zL1RlY2hEcmF3X0RpbWVuc2lvbl9BbmdsZS5zdmc8L2RjOmlkZW50aWZpZXI+CiAgICAgICAgPGRjOnJpZ2h0cz4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPkZyZWVDQUQgTEdQTDIrPC9kYzp0aXRsZT4KICAgICAgICAgIDwvY2M6QWdlbnQ+CiAgICAgICAgPC9kYzpyaWdodHM+CiAgICAgICAgPGNjOmxpY2Vuc2UKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGdwbC0zLjAuZW4uaHRtbCI+aHR0cHM6Ly93d3cuZ251Lm9yZy9jb3B5bGVmdC9sZXNzZXIuaHRtbDwvY2M6bGljZW5zZT4KICAgICAgICA8ZGM6Y29udHJpYnV0b3I+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5bYWdyeXNvbl0gQWxleGFuZGVyIEdyeXNvbjwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6Y29udHJpYnV0b3I+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaWQ9ImxheWVyMSIKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIj4KICAgIDxnCiAgICAgICBpZD0iZzMwMjQiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLjA2OTg2MTMsMCwwLDAuOTk0MDQxNjUsLTQ5LjQwMjc1NiwtOC40MzkxNTU5KSIKICAgICAgIHN0eWxlPSJzdHJva2U6IzMwMmIwMCIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI0NSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI0NSI+CiAgICAgIDxwYXRoCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2NjY2NjY2NjY2NjIgogICAgICAgICBpZD0icGF0aDM3NzAtMSIKICAgICAgICAgZD0ibSA4NC41MDcwNjEsMzQuNjkwMDY4IDIuMDQ2OTIsLTMuNDM2NTg1IEMgOTIsMzQgOTcsNDMgOTEuODI1MTU1LDUwLjg1MjQ1NyBsIC0zLjYwNzU4NCwtMS43Mjc4MTEgYyAxLjQwOTgyOSw0LjAwMTU0OCAxLjkxNzc2MSw3LjU3MTE0MSAxLjk1NTc1MSw5LjgwNjg4NiBsIDAuMDM3OTksMi4yMzU3NDUgMS43NjU4MDMsLTEuMzcxODM5IGMgMS43NjU4MDIsLTEuMzcxODM4IDQuODY1NDU0LC0zLjIxMzYyMSA4Ljg2Njk5NSwtNC42MjM0NSBMIDk3LjIzNjUzMSw1My40NDQxNzYgQyAxMDUsNDYgOTgsMzAgODkuNjI0MzU4LDI2LjA5ODYwNCBsIDIuMDQ2OTE5LC0zLjQzNjU4NiBjIC00LjExMjYyOCwxLjA0MjI0OSAtNy43MTM1MjcsMS4yMjUzNTQgLTkuOTQzNTUsMS4wNjEwNDEgbCAtMi4yMzAwMjMsLTAuMTY0MzE0IDEuMjA2NTYzLDEuODgyNjA3IGMgMS4yMDY1NjQsMS44ODI2MDUgMi43NjA1NDQsNS4xMzYwODggMy44MDI3OTQsOS4yNDg3MTYgeiIKICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTptZWRpdW07Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDt0ZXh0LWluZGVudDowO3RleHQtYWxpZ246c3RhcnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7bGluZS1oZWlnaHQ6bm9ybWFsO2xldHRlci1zcGFjaW5nOm5vcm1hbDt3b3JkLXNwYWNpbmc6bm9ybWFsO3RleHQtdHJhbnNmb3JtOm5vbmU7ZGlyZWN0aW9uOmx0cjtibG9jay1wcm9ncmVzc2lvbjp0Yjt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6c3RhcnQ7YmFzZWxpbmUtc2hpZnQ6YmFzZWxpbmU7Y29sb3I6IzAwMDAwMDtmaWxsOnVybCgjbGluZWFyR3JhZGllbnQzMDMzKTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6IzMwMmIwMDtzdHJva2Utd2lkdGg6MS45MzkzODQ3MDAwMDAwMDAwMDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7dmlzaWJpbGl0eTp2aXNpYmxlO2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZTtmb250LWZhbWlseTpzYW5zLXNlcmlmIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogICAgICA8cGF0aAogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBpZD0icGF0aDM4NjQiCiAgICAgICAgIGQ9Im0gODIuNDIyNTYsMjYuNDY0ODExIDMuMTA3OTYsNi41MDY5NjUiCiAgICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNmY2U5NGY7c3Ryb2tlLXdpZHRoOjEuOTM5Mzg0NzAwMDAwMDAwMDA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgICAgPHBhdGgKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjYyIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGgzODY0LTQiCiAgICAgICAgIGQ9Ik0gOTEuMjI4NjYxLDU2LjA0OTU0NSA5MC43NDQ2NDIsNTAuMzIyOTI5IgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmNlOTRmO3N0cm9rZS13aWR0aDoxLjkzOTM4NDcwMDAwMDAwMDAwO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlkPSJwYXRoMzg2NiIKICAgICAgICAgZD0iTSA4Mi4xMjE2NzMsMjYuNjA4MzY1IEMgMTAwLDM1IDk3LjUxMzMwOCw0OCA5MS45MzYzMjUsNTMuMTQ4ODU2IgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmNlOTRmO3N0cm9rZS13aWR0aDoxLjkzOTM4NDcwMDAwMDAwMDAwO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgICA8cGF0aAogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBpZD0icGF0aDM4NjgiCiAgICAgICAgIGQ9Ik0gODYuNTUzOTgsMzEuMjUzNDgzIDg1LDI4IgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmNlOTRmO3N0cm9rZS13aWR0aDoxLjkzOTM4NDcwMDAwMDAwMDAwO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlkPSJwYXRoMzg2OC04IgogICAgICAgICBkPSJNIDk0LjYyNjQzMSw0OS41NDExNDIgOTAuMTY2OTE2LDU4LjkzNzIxIgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmNlOTRmO3N0cm9rZS13aWR0aDoxLjkzOTM4NDcwMDAwMDAwMDAwO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICAgIDxwYXRoCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2NjY2NjY2NjY2NjIgogICAgICAgICBpZD0icGF0aDM3NzAtOSIKICAgICAgICAgZD0ibSA4NC41MDcwNjEsMzQuNjkwMDY4IDIuMDQ2OTIsLTMuNDM2NTg1IEMgOTIsMzQgOTcsNDMgOTEuODI1MTU1LDUwLjg1MjQ1NyBsIC0zLjYwNzU4NCwtMS43Mjc4MTEgYyAxLjQwOTgyOSw0LjAwMTU0OCAxLjkxNzc2MSw3LjU3MTE0MSAxLjk1NTc1MSw5LjgwNjg4NiBsIDAuMDM3OTksMi4yMzU3NDUgMS43NjU4MDMsLTEuMzcxODM5IGMgMS43NjU4MDIsLTEuMzcxODM4IDQuODY1NDU0LC0zLjIxMzYyMSA4Ljg2Njk5NSwtNC42MjM0NSBMIDk3LjIzNjUzMSw1My40NDQxNzYgQyAxMDUsNDYgOTgsMzAgODkuNjI0MzU4LDI2LjA5ODYwNCBsIDIuMDQ2OTE5LC0zLjQzNjU4NiBjIC00LjExMjYyOCwxLjA0MjI0OSAtNy43MTM1MjcsMS4yMjUzNTQgLTkuOTQzNTUsMS4wNjEwNDEgbCAtMi4yMzAwMjMsLTAuMTY0MzE0IDEuMjA2NTYzLDEuODgyNjA3IGMgMS4yMDY1NjQsMS44ODI2MDUgMi43NjA1NDQsNS4xMzYwODggMy44MDI3OTQsOS4yNDg3MTYgeiIKICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZTptZWRpdW07Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDt0ZXh0LWluZGVudDowO3RleHQtYWxpZ246c3RhcnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7bGluZS1oZWlnaHQ6bm9ybWFsO2xldHRlci1zcGFjaW5nOm5vcm1hbDt3b3JkLXNwYWNpbmc6bm9ybWFsO3RleHQtdHJhbnNmb3JtOm5vbmU7ZGlyZWN0aW9uOmx0cjtibG9jay1wcm9ncmVzc2lvbjp0Yjt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6c3RhcnQ7YmFzZWxpbmUtc2hpZnQ6YmFzZWxpbmU7Y29sb3I6IzAwMDAwMDtmaWxsOm5vbmU7c3Ryb2tlOiMzMDJiMDA7c3Ryb2tlLXdpZHRoOjEuOTM5Mzg0NzAwMDAwMDAwMDA7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2Utb3BhY2l0eToxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO3Zpc2liaWxpdHk6dmlzaWJsZTtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZiIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgIDwvZz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMzAyYjAwO3N0cm9rZS13aWR0aDo4O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0iTSA5LDQ0IDQ4Ljk1OTg0Myw1OC4xMTQyMTEiCiAgICAgICBpZD0icGF0aDMwMzktNyIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgaW5rc2NhcGU6dHJhbnNmb3JtLWNlbnRlci14PSItMTkuOTc5OTIxIgogICAgICAgaW5rc2NhcGU6dHJhbnNmb3JtLWNlbnRlci15PSI3LjA1NzEwNTUiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNDUiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNDUiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzMwMmIwMDtzdHJva2Utd2lkdGg6ODtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Ik0gOSw0NCAzMy40NjU2NzksOS4zOTYwODk1IgogICAgICAgaWQ9InBhdGgzMDM5LTctNCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgaW5rc2NhcGU6dHJhbnNmb3JtLWNlbnRlci14PSItMTIuMjMyODQiCiAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXk9Ii0xNy4zMDE5NTUiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNDUiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNDUiIC8+CiAgICA8cGF0aAogICAgICAgc29kaXBvZGk6dHlwZT0iYXJjIgogICAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDM5MTEpO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMzAyYjAwO3N0cm9rZS13aWR0aDoxLjUwMDAwMDAwMDAwMDAwMDAwO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjAiCiAgICAgICBpZD0icGF0aDMwMzciCiAgICAgICBzb2RpcG9kaTpjeD0iNyIKICAgICAgIHNvZGlwb2RpOmN5PSI0NCIKICAgICAgIHNvZGlwb2RpOnJ4PSI2IgogICAgICAgc29kaXBvZGk6cnk9IjYiCiAgICAgICBkPSJNIDEzLDQ0IEEgNiw2IDAgMSAxIDEsNDQgNiw2IDAgMSAxIDEzLDQ0IHoiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLjMzMzMzMzMsMCwwLDEuMzMzMzMzMSwxLjY2NjY2NjksLTE0LjY2NjY1NSkiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNDUiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNDUiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6dXJsKCNsaW5lYXJHcmFkaWVudDM5NDkpO3N0cm9rZS13aWR0aDo0O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0iTSA5LDQ0IDQ4Ljk1OTg0Myw1OC4xMTQyMTEiCiAgICAgICBpZD0icGF0aDMwMzktNy0wIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiCiAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXg9Ii0xOS45Nzk5MjEiCiAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXk9IjcuMDU3MTA1NSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI0NSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI0NSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50MzkyNyk7c3Ryb2tlOnVybCgjbGluZWFyR3JhZGllbnQzOTQxKTtzdHJva2Utd2lkdGg6NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MTtmaWxsLW9wYWNpdHk6MSIKICAgICAgIGQ9Ik0gOSw0NCAzMy40NjU2NzksOS4zOTYwOSIKICAgICAgIGlkPSJwYXRoMzAzOS03LTQtOSIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgaW5rc2NhcGU6dHJhbnNmb3JtLWNlbnRlci14PSItMTIuMjMyODQiCiAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXk9Ii0xNy4zMDE5NTUiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNDUiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNDUiIC8+CiAgICA8cGF0aAogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2ZjZTk0ZjtzdHJva2Utd2lkdGg6MjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Ik0gOSw0MyA0OS40ODcwOTMsNTcuMjc2NDQyIgogICAgICAgaWQ9InBhdGgzMDM5LTctMC00IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiCiAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXg9Ii0xOS45Nzk5MjEiCiAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXk9IjcuMDU3MTA1NSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI0NSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI0NSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmNlOTRmO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0iTSAxMCw0MSAzMi43NDE4OTMsOC43MTMyMTQiCiAgICAgICBpZD0icGF0aDMwMzktNy00LTktOCIKICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgaW5rc2NhcGU6dHJhbnNmb3JtLWNlbnRlci14PSItMTIuMjMyODQiCiAgICAgICBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXk9Ii0xNy4zMDE5NTUiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNDUiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNDUiIC8+CiAgICA8cGF0aAogICAgICAgc29kaXBvZGk6dHlwZT0iYXJjIgogICAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDM5MTkpO3N0cm9rZTojZmNlOTRmO3N0cm9rZS13aWR0aDoxLjk5OTk5OTY0MDAwMDAwMDAwO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1vcGFjaXR5OjE7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7ZmlsbC1vcGFjaXR5OjEiCiAgICAgICBpZD0icGF0aDMwMzctOCIKICAgICAgIHNvZGlwb2RpOmN4PSI3IgogICAgICAgc29kaXBvZGk6Y3k9IjQ0IgogICAgICAgc29kaXBvZGk6cng9IjYiCiAgICAgICBzb2RpcG9kaTpyeT0iNiIKICAgICAgIGQ9Ik0gMTMsNDQgQSA2LDYgMCAxIDEgMSw0NCA2LDYgMCAxIDEgMTMsNDQgeiIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQsMCkiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNDUiCiAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNDUiIC8+CiAgPC9nPgo8L3N2Zz4K
"""
Dim_Parallel_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjY0cHgiCiAgIGhlaWdodD0iNjRweCIKICAgaWQ9InN2ZzI3MjYiCiAgIHNvZGlwb2RpOnZlcnNpb249IjAuMzIiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuMCByMTUyOTkiCiAgIHNvZGlwb2RpOmRvY25hbWU9IkRpc3RhbmNlX1BhcmFsbGVsLnN2ZyIKICAgaW5rc2NhcGU6b3V0cHV0X2V4dGVuc2lvbj0ib3JnLmlua3NjYXBlLm91dHB1dC5zdmcuaW5rc2NhcGUiCiAgIHZlcnNpb249IjEuMSI+CiAgPGRlZnMKICAgICBpZD0iZGVmczI3MjgiPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzNzcwIgogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIj4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzNzcyIgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwNjk4OWE7c3RvcC1vcGFjaXR5OjEiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMzc3NCIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMzRlMGUyO3N0b3Atb3BhY2l0eToxIiAvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mzc2MCI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwNjk4OWE7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzNzYyIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojMzRlMGUyO3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzc2NCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMzIgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfej0iNjQgOiAzMiA6IDEiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMzIgOiAyMS4zMzMzMzMgOiAxIgogICAgICAgaWQ9InBlcnNwZWN0aXZlMjczNCIgLz4KICAgIDxyYWRpYWxHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzE0NC00IgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50Mzg1MC05IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEsMCwwLDAuNjk4NTI5NCwwLDIwMi44Mjg2MykiCiAgICAgICBjeD0iMjI1LjI2NDAyIgogICAgICAgY3k9IjY3Mi43OTczNiIKICAgICAgIGZ4PSIyMjUuMjY0MDIiCiAgICAgICBmeT0iNjcyLjc5NzM2IgogICAgICAgcj0iMzQuMzQ1MTg4IiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMTQ0LTQiPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDMxNDYtMiIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MDsiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgaWQ9InN0b3AzMTQ4LTAiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQzNzYwIgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mzc2NiIKICAgICAgIHgxPSItNTU2LjAyMzc0IgogICAgICAgeTE9Ii00MTguNDg2NDIiCiAgICAgICB4Mj0iLTQxMS43MDAwNyIKICAgICAgIHkyPSItMzA2LjUyMjM3IgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDM3NzAiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzNzY4IgogICAgICAgeDE9Ii01MDYuMjc3MzEiCiAgICAgICB5MT0iLTU1OS42NzUxMSIKICAgICAgIHgyPSItMzg1LjU1MjI1IgogICAgICAgeTI9Ii00NjEuODAwNzUiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50Mzc3MC03IgogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mzc2OC0xIgogICAgICAgeDE9Ii01MDYuMjc3MzEiCiAgICAgICB5MT0iLTU1OS42NzUxMSIKICAgICAgIHgyPSItMzg1LjU1MjI1IgogICAgICAgeTI9Ii00NjEuODAwNzUiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mzc3MC03IgogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIj4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzNzcyLTQiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzA2OTg5YTtzdG9wLW9wYWNpdHk6MSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AzNzc0LTAiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzM0ZTBlMjtzdG9wLW9wYWNpdHk6MSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNC4xMDE0ODI5LDQuMTU3NDI4LC00LjEwMTQ4MjksNC4xNTc0MjgsMTU3LjkyMjQ3LDMzOC4xMDEwOCkiCiAgICAgICB5Mj0iMjguMzk5MTg1IgogICAgICAgeDI9IjI1LjQ0NTIyMyIKICAgICAgIHkxPSI0MC4yMjc1MDkiCiAgICAgICB4MT0iNDMuMjg4ODkxIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQ0MDc1IgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MzAyMCIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50MzAyMCIKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyI+CiAgICAgIDxzdG9wCiAgICAgICAgIGlkPSJzdG9wMzAyMiIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojYzRhMDAwO3N0b3Atb3BhY2l0eToxIiAvPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDMwMjQiCiAgICAgICAgIG9mZnNldD0iMSIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZjZTk0ZjtzdG9wLW9wYWNpdHk6MSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgPC9kZWZzPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSI2Ljg1MDA5NjkiCiAgICAgaW5rc2NhcGU6Y3g9IjcuMTA5ODQxMSIKICAgICBpbmtzY2FwZTpjeT0iMzIiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0iZzQyODkiCiAgICAgc2hvd2dyaWQ9InRydWUiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmdyaWQtYmJveD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE1MzYiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iODAxIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTgiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpzbmFwLWdsb2JhbD0iZmFsc2UiPgogICAgPGlua3NjYXBlOmdyaWQKICAgICAgIHR5cGU9Inh5Z3JpZCIKICAgICAgIGlkPSJncmlkMjk5MCIKICAgICAgIGVtcHNwYWNpbmc9IjIiCiAgICAgICB2aXNpYmxlPSJ0cnVlIgogICAgICAgZW5hYmxlZD0idHJ1ZSIKICAgICAgIHNuYXB2aXNpYmxlZ3JpZGxpbmVzb25seT0idHJ1ZSIgLz4KICA8L3NvZGlwb2RpOm5hbWVkdmlldz4KICA8ZwogICAgIGlkPSJsYXllcjEiCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciI+CiAgICA8ZwogICAgICAgaWQ9Imc0Mjg5IgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4xNjIxMjgyLDAsMCwwLjE2MjEyODIsNi4zNjA1OTg2LC02Ni4xMDg4MDYpIj4KICAgICAgPGcKICAgICAgICAgaWQ9Imc4NzIiCiAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuODk0Mzc5NDYsMC4xNTU2NTQ4OCwtMC4xNTc3MDMyMywwLjg4Mjc2MjY4LDc3LjkxMDA0MSw4My4wNzcyNTgpIgogICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMjAwMDY5IgogICAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTEuMjAwMDY5Ij4KICAgICAgICA8cmVjdAogICAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KC0wLjg0MTMyNzYxLC0wLjU0MDUyNTUzLDAuNTMzNTk5MDYsLTAuODQ1NzM3NTgsMCwwKSIKICAgICAgICAgICB5PSItNTIxLjg5ODYyIgogICAgICAgICAgIHg9Ii01OTkuNjE3NjgiCiAgICAgICAgICAgaGVpZ2h0PSI2Mi4wODA4NzUiCiAgICAgICAgICAgd2lkdGg9IjI4NS43MzI2NCIKICAgICAgICAgICBpZD0icmVjdDM5NDItNC05LTkiCiAgICAgICAgICAgc3R5bGU9ImNvbG9yOiMwMDAwMDA7ZGlzcGxheTppbmxpbmU7b3ZlcmZsb3c6dmlzaWJsZTt2aXNpYmlsaXR5OnZpc2libGU7ZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50Mzc2OCk7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOiMwNDJhMmE7c3Ryb2tlLXdpZHRoOjEyLjMzNjEyNDQyO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MTttYXJrZXI6bm9uZTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIiAvPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjYyIKICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCg2LjE2Nzk1ODQsMCwwLDYuMTY3OTU4NCwtMzkuMjMxOTA4LDQwNy43NTYzNykiCiAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICBpZD0icGF0aDM4MTAiCiAgICAgICAgICAgZD0iTSAxMC4wMTYwNzEsMjcuMTkyODQ3IDQ1LjYzNjM2NCw1MC4xMDIyNzMgNDIuNDA5MDkxLDU1LjI1IDYuNzcxMzg5MiwzMi4zNTcxNzYgWiIKICAgICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMzRlMGUyO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICAgIDwvZz4KICAgICAgPGcKICAgICAgICAgaWQ9Imc4NzYiCiAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuODgzMjc3NzksMC4xNTc0NDMzMywtMC4xNTU3NDU3MSwwLjg5MjkwNTUxLDE0Ny44ODYxNiw2LjE4MzQ1MykiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1MS4yMDAwNjkiCiAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4yMDAwNjkiPgogICAgICAgIDxyZWN0CiAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoLTAuODQxMzI3NjIsLTAuNTQwNTI1NTEsMC41MzM1OTkwNCwtMC44NDU3Mzc1OSwwLDApIgogICAgICAgICAgIHk9Ii0zODMuMjkwNSIKICAgICAgICAgICB4PSItNTk5LjY4MjI1IgogICAgICAgICAgIGhlaWdodD0iNjAuMDEzOTAxIgogICAgICAgICAgIHdpZHRoPSIyODUuMDQ4NTUiCiAgICAgICAgICAgaWQ9InJlY3QzOTQyLTQtOSIKICAgICAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO3Zpc2liaWxpdHk6dmlzaWJsZTtmaWxsOnVybCgjbGluZWFyR3JhZGllbnQzNzY2KTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6IzA0MmEyYTtzdHJva2Utd2lkdGg6MTIuMzM2MTI0NDI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxO21hcmtlcjpub25lO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGUiIC8+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjIgogICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgaWQ9InBhdGgzODEwLTQiCiAgICAgICAgICAgZD0iTSA5Ni4zNjgxNzEsNDU4LjEwNzQ3IDMxNi4wNzI2Niw1OTkuNDExODUgMjk2LjE2Njk4LDYzMS4xNjI4MiA3Ni4zNTUxMTEsNDg5Ljk2MDgzIFoiCiAgICAgICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzM0ZTBlMjtzdHJva2Utd2lkdGg6MTIuMzM1OTE2NTI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgICAgPC9nPgogICAgICA8ZwogICAgICAgICBpZD0iZzg2OCIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjUxLjIwMDA2OSIKICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjUxLjIwMDA2OSI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTEuMjAwMDY5IgogICAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1MS4yMDAwNjkiCiAgICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjY2NjY2NjY2NjY2MiCiAgICAgICAgICAgaWQ9InBhdGgzNzcwLTEiCiAgICAgICAgICAgZD0ibSAxNzQuMzI4NDEsNTI5LjM0Mjc2IDE2LjQwNTk0LDE2LjYyOTcxIC05MC4yMzI2Myw5MS40NjM0MyAtMTYuNDA1OTM1LC0xNi42Mjk3MyBjIDAsMjQuOTQ0NTggLTQuMTAxNDc2LDQ1LjczMTcyIC04LjIwMjk2NSw1OC4yMDQwMSBsIC00LjEwMTQ3NiwxMi40NzIyNyAxMi4zMDQ0NDEsLTQuMTU3NDIgYyAxMi4zMDQ0NDgsLTQuMTU3NDMgMzIuODExODY1LC04LjMxNDg1IDU3LjQyMDc2NSwtOC4zMTQ4NSBsIC0xNi40MDU5MywtMTYuNjI5NzIgOTAuMjMyNjEsLTkxLjQ2MzQyIDE2LjQwNTk0LDE2LjYyOTcyIGMgMCwtMjQuOTQ0NTggNC4xMDE0OCwtNDUuNzMxNzEgOC4yMDI5NywtNTguMjA0IGwgNC4xMDE0NywtMTIuNDcyMjggLTEyLjMwNDQ0LDQuMTU3NDIgYyAtMTIuMzA0NDUsNC4xNTc0MyAtMzIuODExODYsOC4zMTQ4NiAtNTcuNDIwNzYsOC4zMTQ4NiB6IgogICAgICAgICAgIHN0eWxlPSJjb2xvcjojMDAwMDAwO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7Zm9udC1zaXplOm1lZGl1bTtsaW5lLWhlaWdodDpub3JtYWw7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWluZGVudDowO3RleHQtYWxpZ246c3RhcnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1kZWNvcmF0aW9uLWxpbmU6bm9uZTtsZXR0ZXItc3BhY2luZzpub3JtYWw7d29yZC1zcGFjaW5nOm5vcm1hbDt0ZXh0LXRyYW5zZm9ybTpub25lO3dyaXRpbmctbW9kZTpsci10YjtkaXJlY3Rpb246bHRyO2Jhc2VsaW5lLXNoaWZ0OmJhc2VsaW5lO3RleHQtYW5jaG9yOnN0YXJ0O2Rpc3BsYXk6aW5saW5lO292ZXJmbG93OnZpc2libGU7dmlzaWJpbGl0eTp2aXNpYmxlO2ZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDQwNzUpO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxMi4zMzU5MTY1MjtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtZGFzaG9mZnNldDowO3N0cm9rZS1vcGFjaXR5OjE7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZSIKICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjUxLjIwMDA2OSIKICAgICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMjAwMDY5IgogICAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiCiAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICBpZD0icGF0aDM4NjQiCiAgICAgICAgICAgZD0ibSAyMjMuNTQ2Miw1MjkuMzQyNzYgLTQxLjAxNDgyLDguMzE0ODYiCiAgICAgICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2ZjZTk0ZjtzdHJva2Utd2lkdGg6MTIuMzM1OTE2NTI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgICAgICA8cGF0aAogICAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4yMDAwNjkiCiAgICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjUxLjIwMDA2OSIKICAgICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgaWQ9InBhdGgzODY0LTQiCiAgICAgICAgICAgZD0ibSA4NC4wOTU3ODUsNjcwLjY5NTMxIDguMjAyOTY2LC00MS41NzQyNyIKICAgICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmNlOTRmO3N0cm9rZS13aWR0aDoxMi4zMzU5MTY1MjtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjUxLjIwMDA2OSIKICAgICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMjAwMDY5IgogICAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2MiCiAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICBpZD0icGF0aDM4NjYiCiAgICAgICAgICAgZD0iTSAyMzEuNzQ5MTcsNTIxLjAyNzkgNzEuOTEyODI4LDY4Mi43MjQ4MyIKICAgICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmNlOTRmO3N0cm9rZS13aWR0aDoxMi4zMzU5MTY1MjtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgICAgICA8cGF0aAogICAgICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI1MS4yMDAwNjkiCiAgICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXhkcGk9IjUxLjIwMDA2OSIKICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICAgIGlkPSJwYXRoMzg2OCIKICAgICAgICAgICBkPSJtIDE5MC43MzQzNSw1NDUuOTcyNDcgMjAuNTA3NCwtNC4xNTc0MiIKICAgICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmNlOTRmO3N0cm9rZS13aWR0aDoxMi4zMzU5MTY1MjtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgaW5rc2NhcGU6ZXhwb3J0LXlkcGk9IjUxLjIwMDA2OSIKICAgICAgICAgICBpbmtzY2FwZTpleHBvcnQteGRwaT0iNTEuMjAwMDY5IgogICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgaWQ9InBhdGgzODY4LTgiCiAgICAgICAgICAgZD0ibSAxMDAuNTAxNzIsNjM3LjQzNTkgLTQuMTAxNDg3LDIwLjc4NzEzIgogICAgICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNmY2U5NGY7c3Ryb2tlLXdpZHRoOjEyLjMzNTkxNjUyO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiIC8+CiAgICAgICAgPHBhdGgKICAgICAgICAgICBpbmtzY2FwZTpleHBvcnQteWRwaT0iNTEuMjAwMDY5IgogICAgICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI1MS4yMDAwNjkiCiAgICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjY2NjY2NjY2NjY2MiCiAgICAgICAgICAgaWQ9InBhdGgzNzcwLTkiCiAgICAgICAgICAgZD0ibSAxNzUuNzY1NTEsNTI1LjgyODcgMTcuNjIyNzQsMTcuNjIyNzUgLTk2LjkyNTA3OSw5Ni45MjUwNyAtMTcuNjIyNzMzLC0xNy42MjI3NSBjIDAsMjYuNDM0MTIgLTQuNDA1NjgsNDguNDYyNTQgLTguODExMzczLDYxLjY3OTYgbCAtNC40MDU2OCwxMy4yMTcwNCAxMy4yMTcwNTMsLTQuNDA1NjcgYyAxMy4yMTcwNTMsLTQuNDA1NjkgMzUuMjQ1NDcyLC04LjgxMTM3IDYxLjY3OTU5MiwtOC44MTEzNyBsIC0xNy42MjI3NCwtMTcuNjIyNzUgOTYuOTI1MDYsLTk2LjkyNTA2IDE3LjYyMjc1LDE3LjYyMjc0IGMgMCwtMjYuNDM0MTIgNC40MDU2OCwtNDguNDYyNTQgOC44MTEzNiwtNjEuNjc5NiBsIDQuNDA1NjgsLTEzLjIxNzA0IC0xMy4yMTcwNCw0LjQwNTY3IGMgLTEzLjIxNzA2LDQuNDA1NjkgLTM1LjI0NTQ4LDguODExMzcgLTYxLjY3OTU5LDguODExMzcgeiIKICAgICAgICAgICBzdHlsZT0iY29sb3I6IzAwMDAwMDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZTptZWRpdW07bGluZS1oZWlnaHQ6bm9ybWFsO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7dGV4dC1pbmRlbnQ6MDt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtZGVjb3JhdGlvbi1saW5lOm5vbmU7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3dvcmQtc3BhY2luZzpub3JtYWw7dGV4dC10cmFuc2Zvcm06bm9uZTt3cml0aW5nLW1vZGU6bHItdGI7ZGlyZWN0aW9uOmx0cjtiYXNlbGluZS1zaGlmdDpiYXNlbGluZTt0ZXh0LWFuY2hvcjpzdGFydDtkaXNwbGF5OmlubGluZTtvdmVyZmxvdzp2aXNpYmxlO3Zpc2liaWxpdHk6dmlzaWJsZTtmaWxsOm5vbmU7c3Ryb2tlOiMzMDJiMDA7c3Ryb2tlLXdpZHRoOjEyLjMzNTkxNjUyO3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MTtlbmFibGUtYmFja2dyb3VuZDphY2N1bXVsYXRlIgogICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+CiAgICAgIDwvZz4KICAgIDwvZz4KICA8L2c+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNjU5MSI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGUgLz4KICAgICAgICA8Y2M6bGljZW5zZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iIiAvPgogICAgICAgIDxkYzpkYXRlPk1vbiBNYXIgMTIgMTc6MjA6MDMgMjAxMiAtMDMwMDwvZGM6ZGF0ZT4KICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPltZb3JpayB2YW4gSGF2cmVdPC9kYzp0aXRsZT4KICAgICAgICAgIDwvY2M6QWdlbnQ+CiAgICAgICAgPC9kYzpjcmVhdG9yPgogICAgICAgIDxkYzpyaWdodHM+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5GcmVlQ0FEIExHUEwyKzwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6cmlnaHRzPgogICAgICAgIDxkYzpwdWJsaXNoZXI+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5GcmVlQ0FEPC9kYzp0aXRsZT4KICAgICAgICAgIDwvY2M6QWdlbnQ+CiAgICAgICAgPC9kYzpwdWJsaXNoZXI+CiAgICAgICAgPGRjOmlkZW50aWZpZXI+RnJlZUNBRC9zcmMvTW9kL0RyYWZ0L1Jlc291cmNlcy9pY29ucy9TbmFwX1BhcmFsbGVsLnN2ZzwvZGM6aWRlbnRpZmllcj4KICAgICAgICA8ZGM6cmVsYXRpb24+aHR0cDovL3d3dy5mcmVlY2Fkd2ViLm9yZy93aWtpL2luZGV4LnBocD90aXRsZT1BcnR3b3JrPC9kYzpyZWxhdGlvbj4KICAgICAgICA8ZGM6Y29udHJpYnV0b3I+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5bYWdyeXNvbl0gQWxleGFuZGVyIEdyeXNvbjwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6Y29udHJpYnV0b3I+CiAgICAgICAgPGRjOmRlc2NyaXB0aW9uPlR3byBwYXJhbGxlbCBsaW5lcyBhdCBhIHNsaWdodCBhbmdsZTwvZGM6ZGVzY3JpcHRpb24+CiAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICA8cmRmOkJhZz4KICAgICAgICAgICAgPHJkZjpsaT5saW5lPC9yZGY6bGk+CiAgICAgICAgICAgIDxyZGY6bGk+bGluZXM8L3JkZjpsaT4KICAgICAgICAgICAgPHJkZjpsaT5wYXJhbGxlbDwvcmRmOmxpPgogICAgICAgICAgPC9yZGY6QmFnPgogICAgICAgIDwvZGM6c3ViamVjdD4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+Cjwvc3ZnPgo=
"""
help_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjY0IgogICBoZWlnaHQ9IjY0IgogICBpZD0ic3ZnNjM2MSIKICAgc29kaXBvZGk6dmVyc2lvbj0iMC4zMiIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC40OC41IHIxMDA0MCIKICAgc29kaXBvZGk6ZG9jbmFtZT0iaGVscC1icm93c2VyLnN2ZyIKICAgaW5rc2NhcGU6b3V0cHV0X2V4dGVuc2lvbj0ib3JnLmlua3NjYXBlLm91dHB1dC5zdmcuaW5rc2NhcGUiCiAgIHZlcnNpb249IjEuMSI+CiAgPGRlZnMKICAgICBpZD0iZGVmczMiPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQyNDMxIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MTsiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AyNDMzIiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojYjhiOGI4O3N0b3Atb3BhY2l0eToxOyIKICAgICAgICAgb2Zmc2V0PSIxIgogICAgICAgICBpZD0ic3RvcDI0MzUiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQyMTY0NCI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjE7IgogICAgICAgICBvZmZzZXQ9IjAiCiAgICAgICAgIGlkPSJzdG9wMjE2NDYiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDAwMDA7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMjE2NDgiIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQyMTY0NCIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDIxNjUwIgogICAgICAgY3g9IjI1LjEyNSIKICAgICAgIGN5PSIzNi43NSIKICAgICAgIGZ4PSIyNS4xMjUiCiAgICAgICBmeT0iMzYuNzUiCiAgICAgICByPSIxNS43NSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSwwLDAsMC41OTUyMzgsMCwxNC44NzUpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDI5MzMiPgogICAgICA8c3RvcAogICAgICAgICBpZD0ic3RvcDI5MzUiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzljYmNkZTtzdG9wLW9wYWNpdHk6MSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgaWQ9InN0b3AyOTM3IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiMyMDRhODciIC8+CiAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPHJhZGlhbEdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQyOTMzIgogICAgICAgaWQ9InJhZGlhbEdyYWRpZW50MjIwNyIKICAgICAgIGN4PSIyNi41NDQzMjEiCiAgICAgICBjeT0iMjguNDU4NzI1IgogICAgICAgZng9IjI2LjU0NDMyMSIKICAgICAgIGZ5PSIyOC40NTg3MjUiCiAgICAgICByPSIyMi4zNzYxMTYiCiAgICAgICBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS4yMzgzNDIsMC4wMDU5NTQ4NSwtMC4wMDY1MDc3NiwxLjM1MTI3MiwtNi45OTI1MTMsLTkuNzQ0ODQyKSIgLz4KICAgIDxyYWRpYWxHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50MjQzMSIKICAgICAgIGlkPSJyYWRpYWxHcmFkaWVudDI0MzciCiAgICAgICBjeD0iLTE5LjUxNTYzOCIKICAgICAgIGN5PSIxNi44NTU2NjMiCiAgICAgICBmeD0iLTE5LjUxNTYzOCIKICAgICAgIGZ5PSIxNi44NTU2NjMiCiAgICAgICByPSI4Ljc1MzY0MyIKICAgICAgIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoNC40NDU5OTEsMCwwLDYuODY2NSw2Ny4yNTA3MSwtMTA0LjY2NzkpIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDM3ODAiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzNzg2IgogICAgICAgeDE9IjQxLjY0Mjg1NyIKICAgICAgIHkxPSI1OC43ODU3MTMiCiAgICAgICB4Mj0iMjIuMzU3MTQzIgogICAgICAgeTI9IjcuMzU3MTQyOSIKICAgICAgIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzNzgwIj4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzM0NjVhNDtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIwIgogICAgICAgICBpZD0ic3RvcDM3ODIiIC8+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiM3MjlmY2Y7c3RvcC1vcGFjaXR5OjA7IgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzc4NCIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgPC9kZWZzPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpbmtzY2FwZTpndWlkZS1iYm94PSJ0cnVlIgogICAgIHNob3dndWlkZXM9InRydWUiCiAgICAgaWQ9ImJhc2UiCiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjUuNjU2ODU0MiIKICAgICBpbmtzY2FwZTpjeD0iOTIuMDU4NTM5IgogICAgIGlua3NjYXBlOmN5PSI0OC4yNzgzNDQiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOmdyaWQtYmJveD0idHJ1ZSIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxNjAwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjgzNyIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMjciCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9InRydWUiCiAgICAgZmlsbD0iI2RlYjg4NyIKICAgICBzdHJva2U9IiMyMDRhODciCiAgICAgYm9yZGVybGF5ZXI9InRydWUiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgaWQ9IkdyaWRGcm9tUHJlMDQ2U2V0dGluZ3MiCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBvcmlnaW54PSIwcHgiCiAgICAgICBvcmlnaW55PSIwcHgiCiAgICAgICBzcGFjaW5neD0iMXB4IgogICAgICAgc3BhY2luZ3k9IjFweCIKICAgICAgIGNvbG9yPSIjNzE3MWNkIgogICAgICAgZW1wY29sb3I9IiM3YjdiYzMiCiAgICAgICBvcGFjaXR5PSIwLjEyMTU2ODYzIgogICAgICAgZW1wb3BhY2l0eT0iMC41MzcyNTQ5IgogICAgICAgZW1wc3BhY2luZz0iMiIKICAgICAgIHZpc2libGU9InRydWUiCiAgICAgICBlbmFibGVkPSJ0cnVlIgogICAgICAgc25hcHZpc2libGVncmlkbGluZXNvbmx5PSJ0cnVlIiAvPgogIDwvc29kaXBvZGk6bmFtZWR2aWV3PgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTQiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPkhlbHAgQnJvd3NlcjwvZGM6dGl0bGU+CiAgICAgICAgPGRjOmRhdGU+MjAwNS0xMS0wNjwvZGM6ZGF0ZT4KICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPlR1b21hcyBLdW9zbWFuZW48L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOmNyZWF0b3I+CiAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICA8cmRmOkJhZz4KICAgICAgICAgICAgPHJkZjpsaT5oZWxwPC9yZGY6bGk+CiAgICAgICAgICAgIDxyZGY6bGk+YnJvd3NlcjwvcmRmOmxpPgogICAgICAgICAgICA8cmRmOmxpPmRvY3VtZW50YXRpb248L3JkZjpsaT4KICAgICAgICAgICAgPHJkZjpsaT5kb2NzPC9yZGY6bGk+CiAgICAgICAgICAgIDxyZGY6bGk+bWFuPC9yZGY6bGk+CiAgICAgICAgICAgIDxyZGY6bGk+aW5mbzwvcmRmOmxpPgogICAgICAgICAgPC9yZGY6QmFnPgogICAgICAgIDwvZGM6c3ViamVjdD4KICAgICAgICA8Y2M6bGljZW5zZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvMi4wLyIgLz4KICAgICAgICA8ZGM6Y29udHJpYnV0b3I+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5KYWt1YiBTdGVpbmVyLCBBbmRyZWFzIE5pbHNzb248L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOmNvbnRyaWJ1dG9yPgogICAgICAgIDxkYzpzb3VyY2U+aHR0cDovL3RpZ2VydC5jb208L2RjOnNvdXJjZT4KICAgICAgPC9jYzpXb3JrPgogICAgICA8Y2M6TGljZW5zZQogICAgICAgICByZGY6YWJvdXQ9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzIuMC8iPgogICAgICAgIDxjYzpwZXJtaXRzCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9SZXByb2R1Y3Rpb24iIC8+CiAgICAgICAgPGNjOnBlcm1pdHMKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL0Rpc3RyaWJ1dGlvbiIgLz4KICAgICAgICA8Y2M6cmVxdWlyZXMKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL05vdGljZSIgLz4KICAgICAgICA8Y2M6cmVxdWlyZXMKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly93ZWIucmVzb3VyY2Uub3JnL2NjL0F0dHJpYnV0aW9uIiAvPgogICAgICAgIDxjYzpwZXJtaXRzCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9EZXJpdmF0aXZlV29ya3MiIC8+CiAgICAgICAgPGNjOnJlcXVpcmVzCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vd2ViLnJlc291cmNlLm9yZy9jYy9TaGFyZUFsaWtlIiAvPgogICAgICA8L2NjOkxpY2Vuc2U+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlkPSJsYXllcjEiCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDE2KSI+CiAgICA8cGF0aAogICAgICAgc29kaXBvZGk6dHlwZT0iYXJjIgogICAgICAgc3R5bGU9ImZpbGw6IzcyOWZjZjtzdHJva2U6IzBiMTUyMTtzdHJva2Utd2lkdGg6Mi4wNjg5NjU0NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmUiCiAgICAgICBpZD0icGF0aDI5OTIiCiAgICAgICBzb2RpcG9kaTpjeD0iMzIiCiAgICAgICBzb2RpcG9kaTpjeT0iMzIiCiAgICAgICBzb2RpcG9kaTpyeD0iMzAiCiAgICAgICBzb2RpcG9kaTpyeT0iMzAiCiAgICAgICBkPSJNIDYyLDMyIEEgMzAsMzAgMCAxIDEgMiwzMiAzMCwzMCAwIDEgMSA2MiwzMiB6IgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC45NjY2NjY2NywwLDAsMC45NjY2NjY2NywxLjA2NjY2NjYsLTE0LjkzMzMzMykiIC8+CiAgICA8cGF0aAogICAgICAgc29kaXBvZGk6dHlwZT0iYXJjIgogICAgICAgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDM3ODYpO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojNzI5ZmNmO3N0cm9rZS13aWR0aDoyLjIyMjIyMjMzO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZSIKICAgICAgIGlkPSJwYXRoMjk5Mi0zIgogICAgICAgc29kaXBvZGk6Y3g9IjMyIgogICAgICAgc29kaXBvZGk6Y3k9IjMyIgogICAgICAgc29kaXBvZGk6cng9IjMwIgogICAgICAgc29kaXBvZGk6cnk9IjMwIgogICAgICAgZD0iTSA2MiwzMiBBIDMwLDMwIDAgMSAxIDIsMzIgMzAsMzAgMCAxIDEgNjIsMzIgeiIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuOSwwLDAsMC45LDMuMTk5OTk5NiwtMTIuOCkiIC8+CiAgICA8cGF0aAogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMS42ODU3NzYyLDAsMCwxLjY1NjYzODQsNjYuNTUzNzY0LC0xNC4zNTU3OSkiCiAgICAgICBzdHlsZT0iZm9udC1zaXplOjM0LjE1MzIyODc2cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpib2xkO2ZvbnQtc3RyZXRjaDpub3JtYWw7dGV4dC1hbGlnbjpzdGFydDtsaW5lLWhlaWdodDoxMjUlO3dyaXRpbmctbW9kZTpsci10Yjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOnVybCgjcmFkaWFsR3JhZGllbnQyNDM3KTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzcyOWZjZjtzdHJva2Utd2lkdGg6MS4xOTY3ODUwOTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utb3BhY2l0eToxO2ZvbnQtZmFtaWx5OkJpdHN0cmVhbSBWZXJhIFNhbnMiCiAgICAgICBkPSJtIC0yMC4yNSw1LjY2MTU4MzggYyAtMS4wNTkwMTksMi42M2UtNSAtMi4xNDc2MzcsMC4xMjMyMzU2IC0zLjI4MTI1LDAuMzQzNzUgLTEuMTMyOTI1LDAuMjIwNDI4MyAtMi4wMDk0MTMsMC41Mzc1MTI1IC0zLjM3OTI1MSwxIC0wLjAxMDM3LC0wLjAwMTIxIC0wLjAyMDg4LC0wLjAwMTIxIC0wLjAzMTI1LDAgLTAuMDEyMDQsMC4wMDg2MSAtMC4wMjI2NCwwLjAxOTIxNCAtMC4wMzEyNSwwLjAzMTI1IC0wLjAxMjA0LDAuMDA4NjEgLTAuMDIyNjQsMC4wMTkyMTQgLTAuMDMxMjUsMC4wMzEyNSAtMC4wMDEyLDAuMDEwMzcgLTAuMDAxMiwwLjAyMDg4IDAsMC4wMzEyNSAtMC4wMDEyLDAuMDEwMzcgLTAuMDAxMiwwLjAyMDg4IDAsMC4wMzEyNSBsIDAsNS4xNTYyNTAyIGMgLTAuMDAxMiwwLjAxMDM3IC0wLjAwMTIsMC4wMjA4OCAwLDAuMDMxMjUgLTAuMDAxMiwwLjAxMDM3IC0wLjAwMTIsMC4wMjA4OCAwLDAuMDMxMjUgMC4wMDg2LDAuMDEyMDQgMC4wMTkyMSwwLjAyMjY0IDAuMDMxMjUsMC4wMzEyNSAwLjAwODYsMC4wMTIwNCAwLjAxOTIxLDAuMDIyNjQgMC4wMzEyNSwwLjAzMTI1IDAuMDEwMzcsMC4wMDEyIDAuMDIwODgsMC4wMDEyIDAuMDMxMjUsMCAwLjAxMDM3LDAuMDAxMiAwLjAyMDg4LDAuMDAxMiAwLjAzMTI1LDAgMC4wMTAzNywwLjAwMTIgMC4wMjA4OCwwLjAwMTIgMC4wMzEyNSwwIDAuMDEwMzcsMC4wMDEyIDAuMDIwODgsMC4wMDEyIDAuMDMxMjUsMCAxLjE0MjQzOCwtMC43MTkwNDMgMS44NjI2MDMsLTEuMjY3MTM4IDIuOTEwNTAxLC0xLjYyNSAxLjA0ODE0MSwtMC4zNjg3NTYgMi4wNDMxMTYsLTAuNTYyNDc5IDIuOTM3NSwtMC41NjI1IDAuOTQ5MjE4LDIuMWUtNSAxLjY0NDkyNSwwLjIxMDU0NSAyLjE1NjI1LDAuNjI1IDAuNTA4NzIzLDAuNDAyMDkgMC43ODEyMzgsMC45ODMwNCAwLjc4MTI1LDEuNzE4NzUgLTEwZS02LDAuNDgwNjU3IC0wLjE0NDE4OCwwLjk1MTQxIC0wLjQzNzUsMS40Mzc1IC0wLjI4Mjk5MSwwLjQ4NzAxNiAtMC43NDAyNjUsMS4yNDM5MTEgLTEuMzc1LDEuODA3MTY2IEwgLTIwLjkzNzUsMTYuNzUgYyAtMS4yMDE0NTksMS4wODA0OSAtMS43Nzk1MTYsMS45OTEwMjIgLTIuMTY1MjczLDIuNzE4NzUgLTAuMzgzMTEzLDAuNzExNDQ2IC0wLjM1OTc2OSwxLjIzMTY1NiAtMC4zNTk3NjksMi4xNDk4MzIgbCAwLDAuODEyNSBjIC0wLjAwMTIsMC4wMTAzNyAtMC4wMDEyLDAuMDIwODggMCwwLjAzMTI1IC0wLjAwMTIsMC4wMTAzNyAtMC4wMDEyLDAuMDIwODggMCwwLjAzMTI1IDAuMDA4NiwwLjAxMjA0IDAuMDE5MjEsMC4wMjI2NCAwLjAzMTI1LDAuMDMxMjUgMC4wMDg2LDAuMDEyMDQgMC4wMTkyMSwwLjAyMjY0IDAuMDMxMjUsMC4wMzEyNSAwLjAxMDM3LDAuMDAxMiAwLjAyMDg4LDAuMDAxMiAwLjAzMTI1LDAgMC4wMTAzNywwLjAwMTIgMC4wMjA4OCwwLjAwMTIgMC4wMzEyNSwwIGwgNS42ODEyOTIsLTAuMDI4MyBjIDAuMDEwMzcsMC4wMDEyIDAuMDIwODgsMC4wMDEyIDAuMDMxMjUsMCAwLjAxMDM3LDAuMDAxMiAwLjAyMDg4LDAuMDAxMiAwLjAzMTI1LDAgMC4wMTIwNCwtMC4wMDg2IDAuMDIyNjQsLTAuMDE5MjEgMC4wMzEyNSwtMC4wMzEyNSAwLjAxMjA0LC0wLjAwODYgMC4wMjI2NCwtMC4wMTkyMSAwLjAzMTI1LC0wLjAzMTI1IDAuMDAxMiwtMC4wMTAzNyAwLjAwMTIsLTAuMDIwODggMCwtMC4wMzEyNSAwLjAwMTIsLTAuMDEwMzcgMC4wMDEyLC0wLjAyMDg4IDAsLTAuMDMxMjUgbCAwLC0wLjc1IGMgLTEuMWUtNSwtMC40NjgxOTYgMC4xNDgzNywtMC41NzY4ODUgMC4zNzUsLTAuOTY1Mjg2IDAuMjIyMjk1LC0wLjM5MTI4NCAwLjcwODA3MywtMC45NTAzNTkgMS40Njg3NSwtMS42MjUgbCAxLjA2MjUsLTAuOTM3NSBjIDEuMDY2NTg4LC0wLjk4MjMxIDEuODMwNjU5LC0xLjg4NDY1NCAyLjI4MTI1LC0yLjc1IDAuNDQ5MjY5LC0wLjg3NDA0NiAwLjY4NzQ4MiwtMi4wODY4MzYgMC42ODc1LC0zLjE4MjE2NiAtMS44ZS01LC0yLjEyNjI2NSAtMC43NDM3NjksLTMuNzM0MDI3OCAtMi4yMTg3NSwtNC44NDM3NTAyIC0xLjQ3NTE5NywtMS4xMjEwMjUyIC0zLjYwNjI0LC0xLjY4NzQ3MzcgLTYuMzc1LC0xLjY4NzQ5NiB6IgogICAgICAgaWQ9InBhdGgxNTU0IgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY3NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7c3Ryb2tlOiM3MjlmY2Y7c3Ryb2tlLXdpZHRoOjI7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMjcsMjcgMTAsMCAwLDEwIC0xMCwwIHoiCiAgICAgICBpZD0icGF0aDM3ODgiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogIDwvZz4KPC9zdmc+Cg==
"""
label_b64=\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjY0cHgiCiAgIGhlaWdodD0iNjRweCIKICAgaWQ9InN2ZzQ1OTQiCiAgIHNvZGlwb2RpOnZlcnNpb249IjAuMzIiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuMyAoMjQwNTU0NiwgMjAxOC0wMy0xMSkiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImxhYmVsLWQtMi5zdmciCiAgIGlua3NjYXBlOm91dHB1dF9leHRlbnNpb249Im9yZy5pbmtzY2FwZS5vdXRwdXQuc3ZnLmlua3NjYXBlIgogICB2ZXJzaW9uPSIxLjEiPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM0NTk2Ij4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mzc5MiI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmY2U5NGY7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzNzk0IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojYzRhMDAwO3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzc5NiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMzIgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfej0iNjQgOiAzMiA6IDEiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMzIgOiAyMS4zMzMzMzMgOiAxIgogICAgICAgaWQ9InBlcnNwZWN0aXZlNDYwMiIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50Mzc5MiIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDE1OTQiCiAgICAgICB4MT0iNDA0MS4zMzE4IgogICAgICAgeTE9IjE2MTMuNjM5MiIKICAgICAgIHgyPSI0MTc0LjcyOTUiCiAgICAgICB5Mj0iMTYxMy42MzkyIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEuOTA5MDkxMywwLDAsMS45MDkwOTEzLC0zNzQ1LjM3MzMsLTE0NzkuNzI0NCkiIC8+CiAgPC9kZWZzPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSI5LjQ4NDM3NSIKICAgICBpbmtzY2FwZTpjeD0iMzIiCiAgICAgaW5rc2NhcGU6Y3k9IjMyIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImczNDkxIgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJweCIKICAgICBpbmtzY2FwZTpncmlkLWJib3g9InRydWUiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxNjAwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjgyNCIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMCIKICAgICBpbmtzY2FwZTpzbmFwLWdsb2JhbD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIj4KICAgIDxpbmtzY2FwZTpncmlkCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBpZD0iZ3JpZDI5ODYiCiAgICAgICBlbXBzcGFjaW5nPSIyIgogICAgICAgdmlzaWJsZT0idHJ1ZSIKICAgICAgIGVuYWJsZWQ9InRydWUiCiAgICAgICBzbmFwdmlzaWJsZWdyaWRsaW5lc29ubHk9InRydWUiIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPGcKICAgICBpZD0ibGF5ZXIxIgogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiPgogICAgPGcKICAgICAgIGlkPSJnMzQ5MSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC1maWxlbmFtZT0iL2hvbWUveW9yaWsvRG9jdW1lbnRzL0xhYi9EcmFmdC9pY29ucy90ZXh0LnBuZyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI3LjgyMDEzNyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI3LjgyMDEzNyIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMTY0OTIwNCwwLDAsMC4xNjQ5MjA0LC02NDMuNzE3MTYsLTIzMi4wMTQ0NikiPgogICAgICA8cGF0aAogICAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc2l6ZTptZWRpdW07bGluZS1oZWlnaHQ6MjAuMDAwMDAwMyU7Zm9udC1mYW1pbHk6U2FucztsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOnVybCgjbGluZWFyR3JhZGllbnQxNTk0KTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzJlMzQzNjtzdHJva2Utd2lkdGg6MjMuMTUxNjcwNDYiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlkPSJwYXRoMzkzNCIKICAgICAgICAgZD0ibSA0MDI0LjQ2OTcsMTUwMy44NDM0IHYgMTgxLjkwNiBsIDM5LjI4MDEsMC43MDM3IGMgMzcuOTk1NywwLjY4MDggNTIuMjc2NSwtMi45NzM4IDY5Ljg2MzUsLTE4Ljg5NDMgMTcuNzA5MywtMTUuOTIwMSAzMC4zMTc1LC0zMi4zNTY0IDMwLjMxNzcsLTY2LjY5ODkgLTJlLTQsLTM0LjExNDggLTEyLjYwODQsLTUwLjg5MjEgLTMwLjMxNzcsLTY2LjY5ODggLTE3LjU4NywtMTUuOTIwMSAtNDAuODI0MSwtMTguMTkwMiAtNzguODI1OSwtMTguMTkwNiBoIC0zNi4zODEyIG0gLTM2LjkzMjMsLTQyLjQ0NDYgaCA3Ni41NTcyIGMgNTMuMzc0NywyZS00IDkyLjU0NDksMTAuMjkxNSAxMTcuNTEwOSwzMC44NzQgMjQuOTY1MywyMC40NjkzIDM3LjQ0ODEsNTIuNTM3MiAzNy40NDg1LDk2LjIwNDIgLTRlLTQsNDMuODk0NiAtMTIuNTQ0Niw3Ni4xMzMzIC0zNy42MzMsOTYuNzE2IC0yNS4wODg5LDIwLjU4MjYgLTY0LjE5NzcsMzAuODc0IC0xMTcuMzI2NCwzMC44NzQgaCAtNzYuNTU3MiBWIDE0NjEuOTkiCiAgICAgICAgIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NzY2NjY2NjY2NjY3NjYyIgLz4KICAgIDwvZz4KICA8L2c+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNTc1MCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgICA8Y2M6bGljZW5zZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iIiAvPgogICAgICAgIDxkYzpkYXRlPk1vbiBPY3QgMTAgMTM6NDQ6NTIgMjAxMSArMDAwMDwvZGM6ZGF0ZT4KICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPlt3bWF5ZXJdPC9kYzp0aXRsZT4KICAgICAgICAgIDwvY2M6QWdlbnQ+CiAgICAgICAgPC9kYzpjcmVhdG9yPgogICAgICAgIDxkYzpyaWdodHM+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5GcmVlQ0FEIExHUEwyKzwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6cmlnaHRzPgogICAgICAgIDxkYzpwdWJsaXNoZXI+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5GcmVlQ0FEPC9kYzp0aXRsZT4KICAgICAgICAgIDwvY2M6QWdlbnQ+CiAgICAgICAgPC9kYzpwdWJsaXNoZXI+CiAgICAgICAgPGRjOmlkZW50aWZpZXI+RnJlZUNBRC9zcmMvTW9kL0RyYWZ0L1Jlc291cmNlcy9pY29ucy9EcmFmdF9UZXh0LnN2ZzwvZGM6aWRlbnRpZmllcj4KICAgICAgICA8ZGM6cmVsYXRpb24+aHR0cDovL3d3dy5mcmVlY2Fkd2ViLm9yZy93aWtpL2luZGV4LnBocD90aXRsZT1BcnR3b3JrPC9kYzpyZWxhdGlvbj4KICAgICAgICA8ZGM6Y29udHJpYnV0b3I+CiAgICAgICAgICA8Y2M6QWdlbnQ+CiAgICAgICAgICAgIDxkYzp0aXRsZT5bYWdyeXNvbl0gQWxleGFuZGVyIEdyeXNvbjwvZGM6dGl0bGU+CiAgICAgICAgICA8L2NjOkFnZW50PgogICAgICAgIDwvZGM6Y29udHJpYnV0b3I+CiAgICAgICAgPGRjOmRlc2NyaXB0aW9uPlRoZSBjYXBpdGFsIGxldHRlciBBLCBzbGlnaHRseSBpdGFsaWNpemVkPC9kYzpkZXNjcmlwdGlvbj4KICAgICAgICA8ZGM6c3ViamVjdD4KICAgICAgICAgIDxyZGY6QmFnPgogICAgICAgICAgICA8cmRmOmxpPkE8L3JkZjpsaT4KICAgICAgICAgICAgPHJkZjpsaT5sZXR0ZXI8L3JkZjpsaT4KICAgICAgICAgIDwvcmRmOkJhZz4KICAgICAgICA8L2RjOnN1YmplY3Q+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgo8L3N2Zz4K
"""
label_selected_b64 =\
"""
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgd2lkdGg9IjY0cHgiCiAgIGhlaWdodD0iNjRweCIKICAgaWQ9InN2ZzQ1OTQiCiAgIHNvZGlwb2RpOnZlcnNpb249IjAuMzIiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuMyAoMjQwNTU0NiwgMjAxOC0wMy0xMSkiCiAgIHNvZGlwb2RpOmRvY25hbWU9ImxhYmVsLWQtMi1zZWxlY3RlZC5zdmciCiAgIGlua3NjYXBlOm91dHB1dF9leHRlbnNpb249Im9yZy5pbmtzY2FwZS5vdXRwdXQuc3ZnLmlua3NjYXBlIgogICB2ZXJzaW9uPSIxLjEiPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM0NTk2Ij4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaWQ9ImxpbmVhckdyYWRpZW50Mzc5MiI+CiAgICAgIDxzdG9wCiAgICAgICAgIHN0eWxlPSJzdG9wLWNvbG9yOiNmY2U5NGY7c3RvcC1vcGFjaXR5OjEiCiAgICAgICAgIG9mZnNldD0iMCIKICAgICAgICAgaWQ9InN0b3AzNzk0IiAvPgogICAgICA8c3RvcAogICAgICAgICBzdHlsZT0ic3RvcC1jb2xvcjojYzRhMDAwO3N0b3Atb3BhY2l0eToxIgogICAgICAgICBvZmZzZXQ9IjEiCiAgICAgICAgIGlkPSJzdG9wMzc5NiIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8aW5rc2NhcGU6cGVyc3BlY3RpdmUKICAgICAgIHNvZGlwb2RpOnR5cGU9Imlua3NjYXBlOnBlcnNwM2QiCiAgICAgICBpbmtzY2FwZTp2cF94PSIwIDogMzIgOiAxIgogICAgICAgaW5rc2NhcGU6dnBfeT0iMCA6IDEwMDAgOiAwIgogICAgICAgaW5rc2NhcGU6dnBfej0iNjQgOiAzMiA6IDEiCiAgICAgICBpbmtzY2FwZTpwZXJzcDNkLW9yaWdpbj0iMzIgOiAyMS4zMzMzMzMgOiAxIgogICAgICAgaWQ9InBlcnNwZWN0aXZlNDYwMiIgLz4KICAgIDxsaW5lYXJHcmFkaWVudAogICAgICAgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIgogICAgICAgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50Mzc5MiIKICAgICAgIGlkPSJsaW5lYXJHcmFkaWVudDE1OTQiCiAgICAgICB4MT0iNDA0MS4zMzE4IgogICAgICAgeTE9IjE2MTMuNjM5MiIKICAgICAgIHgyPSI0MTc0LjcyOTUiCiAgICAgICB5Mj0iMTYxMy42MzkyIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEuOTA5MDkxMywwLDAsMS45MDkwOTEzLC0zNzQ1LjM3MzMsLTE1MDMuOTc4NikiIC8+CiAgICA8bGluZWFyR3JhZGllbnQKICAgICAgIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIKICAgICAgIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDMwNTciCiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMDUzIgogICAgICAgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgICBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEuOTQ1NTM5MiwwLDAsMS45NDU1MzkyLC00Ny45OTgxODUsLTU4LjY3MzA5NCkiCiAgICAgICB4MT0iNDIuMDAyODg0IgogICAgICAgeTE9IjM1LjczNjQwOCIKICAgICAgIHgyPSI0Mi45ODQ4MDYiCiAgICAgICB5Mj0iNDAuNDY4NzA0IiAvPgogICAgPGxpbmVhckdyYWRpZW50CiAgICAgICBpZD0ibGluZWFyR3JhZGllbnQzMDU3Ij4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzcyOWZjZiIKICAgICAgICAgb2Zmc2V0PSIwLjAwMDAwMDAiCiAgICAgICAgIGlkPSJzdG9wMzA1OSIgLz4KICAgICAgPHN0b3AKICAgICAgICAgc3R5bGU9InN0b3AtY29sb3I6IzM0NjVhNDtzdG9wLW9wYWNpdHk6MSIKICAgICAgICAgb2Zmc2V0PSIxLjAwMDAwMDAiCiAgICAgICAgIGlkPSJzdG9wMzA2MSIgLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgPC9kZWZzPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSI5LjQ4NDM3NSIKICAgICBpbmtzY2FwZTpjeD0iMzIiCiAgICAgaW5rc2NhcGU6Y3k9IjMyIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImczNDkxIgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOmRvY3VtZW50LXVuaXRzPSJweCIKICAgICBpbmtzY2FwZTpncmlkLWJib3g9InRydWUiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxNjAwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjgyNCIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMCIKICAgICBpbmtzY2FwZTpzbmFwLWdsb2JhbD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIj4KICAgIDxpbmtzY2FwZTpncmlkCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBpZD0iZ3JpZDI5ODYiCiAgICAgICBlbXBzcGFjaW5nPSIyIgogICAgICAgdmlzaWJsZT0idHJ1ZSIKICAgICAgIGVuYWJsZWQ9InRydWUiCiAgICAgICBzbmFwdmlzaWJsZWdyaWRsaW5lc29ubHk9InRydWUiIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPGcKICAgICBpZD0ibGF5ZXIxIgogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiPgogICAgPGcKICAgICAgIGlkPSJnMzQ5MSIKICAgICAgIGlua3NjYXBlOmV4cG9ydC1maWxlbmFtZT0iL2hvbWUveW9yaWsvRG9jdW1lbnRzL0xhYi9EcmFmdC9pY29ucy90ZXh0LnBuZyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC14ZHBpPSI3LjgyMDEzNyIKICAgICAgIGlua3NjYXBlOmV4cG9ydC15ZHBpPSI3LjgyMDEzNyIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMTY0OTIwNCwwLDAsMC4xNjQ5MjA0LC02NDMuNzE3MTYsLTIzMi4wMTQ0NikiPgogICAgICA8cGF0aAogICAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc2l6ZTptZWRpdW07bGluZS1oZWlnaHQ6MjAuMDAwMDAwMyU7Zm9udC1mYW1pbHk6U2FucztsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOnVybCgjbGluZWFyR3JhZGllbnQxNTk0KTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6IzJlMzQzNjtzdHJva2Utd2lkdGg6MjMuMTUxNjcwNDYiCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlkPSJwYXRoMzkzNCIKICAgICAgICAgZD0ibSA0MDI0LjQ2OTcsMTQ3OS41ODkyIHYgMTgxLjkwNiBsIDM5LjI4MDEsMC43MDM3IGMgMzcuOTk1NywwLjY4MDggNTIuMjc2NSwtMi45NzM4IDY5Ljg2MzUsLTE4Ljg5NDMgMTcuNzA5MywtMTUuOTIwMSAzMC4zMTc1LC0zMi4zNTY0IDMwLjMxNzcsLTY2LjY5ODkgLTJlLTQsLTM0LjExNDggLTEyLjYwODQsLTUwLjg5MjEgLTMwLjMxNzcsLTY2LjY5ODggLTE3LjU4NywtMTUuOTIwMSAtNDAuODI0MSwtMTguMTkwMiAtNzguODI1OSwtMTguMTkwNiBoIC0zNi4zODEyIG0gLTM2LjkzMjMsLTQyLjQ0NDYgaCA3Ni41NTcyIGMgNTMuMzc0NywyZS00IDkyLjU0NDksMTAuMjkxNSAxMTcuNTEwOSwzMC44NzQgMjQuOTY1MywyMC40NjkzIDM3LjQ0ODEsNTIuNTM3MiAzNy40NDg1LDk2LjIwNDIgLTRlLTQsNDMuODk0NiAtMTIuNTQ0Niw3Ni4xMzMzIC0zNy42MzMsOTYuNzE2IC0yNS4wODg5LDIwLjU4MjYgLTY0LjE5NzcsMzAuODc0IC0xMTcuMzI2NCwzMC44NzQgaCAtNzYuNTU3MiB2IC0yNjYuMjA0MSIKICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY3NjY2NjY2NjY2Njc2NjIiAvPgogICAgICA8ZwogICAgICAgICBpZD0iZzMwNDgiCiAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDQuODA1OTk4OSwwLDAsNC4yMzY1MzQ0LDM5MjkuNTUxOCwxNjkzLjAyODUpIj4KICAgICAgICA8cGF0aAogICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjY2NjY2NjY2NjIgogICAgICAgICAgIGlkPSJ0ZXh0MTMxNCIKICAgICAgICAgICBkPSJtIDQwLjQwNjM1NywyMS45MDE3MzMgdiAwIEggNTkuNTEwMDMzIFYgOS4wMTIxMTIxIEggNDAuNDA2MzU3IHYgMCBoIC0xMy4zNzI1NzQgMWUtNiAtMTkuMTAzNjc2NSBsIC0xZS02LDEyLjg4OTYyMDkgaCAxOS4xMDM2NzY1IC0xZS02IHoiCiAgICAgICAgICAgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZTo1OS45MDEwNzcyN3B4O2xpbmUtaGVpZ2h0OjEyNSU7Zm9udC1mYW1pbHk6J0JpdHN0cmVhbSBWZXJhIFNhbnMnO3RleHQtYWxpZ246c3RhcnQ7d3JpdGluZy1tb2RlOmxyLXRiO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzM0NjVhNDtzdHJva2U6IzBiMTUyMTtzdHJva2Utd2lkdGg6MS44NzU1NTM4NTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2NjY2NjY2MiCiAgICAgICAgICAgaWQ9InBhdGg3MDc2IgogICAgICAgICAgIGQ9Im0gMzguNDk1OTg5LDIwLjA2MDM1OSB2IDAgSCA1Ny41OTk2NjUgViAxMC44NTM0ODcgSCAzOC40OTU5ODkgdiAwIGggLTkuNTUxODM4IDRlLTYgLTE5LjEwMzY3NjggbCAtNGUtNiw5LjIwNjg3MiBIIDI4Ljk0NDE1MSB2IDAgeiIKICAgICAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpib2xkO2ZvbnQtc3RyZXRjaDpub3JtYWw7Zm9udC1zaXplOjU5LjkwMTA3NzI3cHg7bGluZS1oZWlnaHQ6MTI1JTtmb250LWZhbWlseTonQml0c3RyZWFtIFZlcmEgU2Fucyc7dGV4dC1hbGlnbjpzdGFydDt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50MzA1Myk7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiM3MjlmY2Y7c3Ryb2tlLXdpZHRoOjEuODc1NTUzODU7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE1NzUwIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICAgIDxjYzpsaWNlbnNlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSIiIC8+CiAgICAgICAgPGRjOmRhdGU+TW9uIE9jdCAxMCAxMzo0NDo1MiAyMDExICswMDAwPC9kYzpkYXRlPgogICAgICAgIDxkYzpjcmVhdG9yPgogICAgICAgICAgPGNjOkFnZW50PgogICAgICAgICAgICA8ZGM6dGl0bGU+W3dtYXllcl08L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOmNyZWF0b3I+CiAgICAgICAgPGRjOnJpZ2h0cz4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPkZyZWVDQUQgTEdQTDIrPC9kYzp0aXRsZT4KICAgICAgICAgIDwvY2M6QWdlbnQ+CiAgICAgICAgPC9kYzpyaWdodHM+CiAgICAgICAgPGRjOnB1Ymxpc2hlcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPkZyZWVDQUQ8L2RjOnRpdGxlPgogICAgICAgICAgPC9jYzpBZ2VudD4KICAgICAgICA8L2RjOnB1Ymxpc2hlcj4KICAgICAgICA8ZGM6aWRlbnRpZmllcj5GcmVlQ0FEL3NyYy9Nb2QvRHJhZnQvUmVzb3VyY2VzL2ljb25zL0RyYWZ0X1RleHQuc3ZnPC9kYzppZGVudGlmaWVyPgogICAgICAgIDxkYzpyZWxhdGlvbj5odHRwOi8vd3d3LmZyZWVjYWR3ZWIub3JnL3dpa2kvaW5kZXgucGhwP3RpdGxlPUFydHdvcms8L2RjOnJlbGF0aW9uPgogICAgICAgIDxkYzpjb250cmlidXRvcj4KICAgICAgICAgIDxjYzpBZ2VudD4KICAgICAgICAgICAgPGRjOnRpdGxlPlthZ3J5c29uXSBBbGV4YW5kZXIgR3J5c29uPC9kYzp0aXRsZT4KICAgICAgICAgIDwvY2M6QWdlbnQ+CiAgICAgICAgPC9kYzpjb250cmlidXRvcj4KICAgICAgICA8ZGM6ZGVzY3JpcHRpb24+VGhlIGNhcGl0YWwgbGV0dGVyIEEsIHNsaWdodGx5IGl0YWxpY2l6ZWQ8L2RjOmRlc2NyaXB0aW9uPgogICAgICAgIDxkYzpzdWJqZWN0PgogICAgICAgICAgPHJkZjpCYWc+CiAgICAgICAgICAgIDxyZGY6bGk+QTwvcmRmOmxpPgogICAgICAgICAgICA8cmRmOmxpPmxldHRlcjwvcmRmOmxpPgogICAgICAgICAgPC9yZGY6QmFnPgogICAgICAgIDwvZGM6c3ViamVjdD4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+Cjwvc3ZnPgo=
"""

###############################################


##############################################################
global initial_placement, last_selection
global moving, rotating
global objs_moved, plc_moved
global double_click_dly, inv_view, added_dim


#init
#initial_placement = FreeCAD.Placement(FreeCAD.Vector(0,0,0), FreeCAD.Rotation(0,0,0), FreeCAD.Vector(0,0,0)) #Placement [Pos=(0,0,0), Yaw-Pitch-Roll=(0,0,0)]
initial_placement = []
moving = [] #[FreeCAD.Vector(0,0,0)]
rotating = [] #[0, FreeCAD.Vector(0,0,0), FreeCAD.Vector(0,0,0)]
objs_moved = []
plc_moved = []
double_click_dly = 2000  #delay for considering double click on a Face View
inv_view = False
posz=(0.0,0.0,0.0)
#Draft.rotate(objs[j],-rot_angle,rot_center,rot_axis)
#rotating=[rot_angle,rot_center,rot_axis]

last_selection = []
added_dim = []

#################################################################

def say(msg):
    FreeCAD.Console.PrintMessage(msg)
    FreeCAD.Console.PrintMessage('\n')

def sayw(msg):
    FreeCAD.Console.PrintWarning(msg)
    FreeCAD.Console.PrintWarning('\n')

def sayerr(msg):
    FreeCAD.Console.PrintError(msg)
    FreeCAD.Console.PrintWarning('\n')

def make_string(input):
    if (sys.version_info > (3, 0)):  #py3
        if isinstance(input, str):
            return input
        else:
            input =  input.encode('utf-8')
            return input
    else:  #py2
        if type(input) == unicode:
            input =  input.encode('utf-8')
            return input
        else:
            return input

sayw("Caliper version "+str(__version__))

global pointsDirection     ;pointsDirection = []     # tableau direction store the coordinates of first line (for deplacement)
global Direction_Distance  ;Direction_Distance = 0.1 # step precision deplacement here 0.1 mm
global value              ;value          = 0.0
#global ui                  ;ui              = ""
global selobject           ;selobject       = ""
global sel                 ;sel             = ""

#class Ui_DockWidget(object):
# Form implementation generated from reading ui file 'C:\Cad\Progetti_K\3D-FreeCad-tools\icons-new\measure-tool-docked-v1.1.ui'
#
# Created: Sat Oct 07 22:14:50 2017
#      by: pyside-uic 0.2.15 running on PySide 1.2.2
#
# WARNING! All changes made in this file will be lost!

#from PySide import QtCore, QtGui

###############################################################################################################
### new dock widget
### add def link inside class
#    def link(self, linkStr):
#        QtGui.QDesktopServices.openUrl(QtCore.QUrl(linkStr))

#class Ui_DockWidget(object):
#    def link(self, linkStr):
#        #QtGui.QDesktopServices.openUrl(QtCore.QUrl(linkStr))
#        try:
#            QtGui.QDesktopServices.openUrl(QtCore.QUrl(linkStr))  #workaround Qt5 waiting for PySide2
#        except:
#            #QtGui.QDesktopServices.openUrl(QtCore.QUrl(linkStr.fromLocalFile()))
#            pass

QtWidgets = QtGui
#class Ui_DockWidget(object):
class Ui_DockWidget(object):
    def setupUi(self, DockWidget):
        DockWidget.setObjectName("DockWidget")
        DockWidget.resize(280, 339)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("C:\\Users\\userC\\Documents\\GitHub\\Manipulator\\Resources\\ui\\../Documents/GitHub/Manipulator-f3nix/Resources/ui/Caliper.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        DockWidget.setWindowIcon(icon)
        DockWidget.setToolTip("Measure Tools")
        DockWidget.setLayoutDirection(QtCore.Qt.LeftToRight)
        DockWidget.setFeatures(QtWidgets.QDockWidget.DockWidgetFloatable|QtWidgets.QDockWidget.DockWidgetMovable)
        DockWidget.setAllowedAreas(QtCore.Qt.LeftDockWidgetArea|QtCore.Qt.RightDockWidgetArea)
        DockWidget.setWindowTitle("Measure Tools")
        self.dockWidgetContents = QtWidgets.QWidget()
        self.dockWidgetContents.setObjectName("dockWidgetContents")
        self.gridLayout_3 = QtWidgets.QGridLayout(self.dockWidgetContents)
        self.gridLayout_3.setObjectName("gridLayout_3")
        self.gridLayout = QtWidgets.QGridLayout()
        self.gridLayout.setObjectName("gridLayout")
        self.Label = QtWidgets.QLabel(self.dockWidgetContents)
        self.Label.setToolTip("Measure Tools\n"
"Click on Measure button\n"
"to start measuring")
        self.Label.setText("<b>Click</b> action")
        self.Label.setObjectName("Label")
        self.gridLayout.addWidget(self.Label, 0, 4, 1, 1)
        self.dock_float = QtWidgets.QPushButton(self.dockWidgetContents)
        self.dock_float.setMaximumSize(QtCore.QSize(28, 28))
        self.dock_float.setToolTip("un-dock (floating)")
        self.dock_float.setText("")
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap("C:\\Users\\userC\\Documents\\GitHub\\Manipulator\\Resources\\ui\\../Documents/GitHub/Manipulator-f3nix/Resources/ui/un_dock.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.dock_float.setIcon(icon1)
        self.dock_float.setIconSize(QtCore.QSize(24, 24))
        self.dock_float.setObjectName("dock_float")
        self.gridLayout.addWidget(self.dock_float, 0, 0, 1, 1, QtCore.Qt.AlignTop)
        self.dock_minimize = QtWidgets.QPushButton(self.dockWidgetContents)
        self.dock_minimize.setMaximumSize(QtCore.QSize(28, 28))
        self.dock_minimize.setToolTip("minimize")
        self.dock_minimize.setText("")
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap("C:\\Users\\userC\\Documents\\GitHub\\Manipulator\\Resources\\ui\\../Documents/GitHub/Manipulator-f3nix/Resources/ui/minimize.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.dock_minimize.setIcon(icon2)
        self.dock_minimize.setIconSize(QtCore.QSize(24, 24))
        self.dock_minimize.setObjectName("dock_minimize")
        self.gridLayout.addWidget(self.dock_minimize, 0, 1, 1, 1, QtCore.Qt.AlignTop)
        self.close = QtWidgets.QPushButton(self.dockWidgetContents)
        self.close.setMaximumSize(QtCore.QSize(28, 28))
        self.close.setToolTip("close")
        self.close.setText("")
        icon3 = QtGui.QIcon()
        icon3.addPixmap(QtGui.QPixmap("C:\\Users\\userC\\Documents\\GitHub\\Manipulator\\Resources\\ui\\../Documents/GitHub/Manipulator-f3nix/Resources/ui/closeW.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.close.setIcon(icon3)
        self.close.setIconSize(QtCore.QSize(24, 24))
        self.close.setObjectName("close")
        self.gridLayout.addWidget(self.close, 0, 3, 1, 1)
        self.Help_Caliper = QtWidgets.QPushButton(self.dockWidgetContents)
        self.Help_Caliper.setMinimumSize(QtCore.QSize(0, 0))
        self.Help_Caliper.setMaximumSize(QtCore.QSize(28, 28))
        self.Help_Caliper.setToolTip("Help on Caliper")
        self.Help_Caliper.setText("")
        icon4 = QtGui.QIcon()
        icon4.addPixmap(QtGui.QPixmap("C:\\Users\\userC\\Documents\\GitHub\\Manipulator\\Resources\\ui\\../Documents/GitHub/Manipulator-f3nix/Resources/ui/help.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.Help_Caliper.setIcon(icon4)
        self.Help_Caliper.setIconSize(QtCore.QSize(24, 24))
        self.Help_Caliper.setCheckable(False)
        self.Help_Caliper.setChecked(False)
        self.Help_Caliper.setObjectName("Help_Caliper")
        self.gridLayout.addWidget(self.Help_Caliper, 0, 2, 1, 1)
        self.gridLayout_3.addLayout(self.gridLayout, 0, 0, 1, 1)
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_3.addItem(spacerItem, 2, 1, 1, 1)
        spacerItem1 = QtWidgets.QSpacerItem(20, 0, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.gridLayout_3.addItem(spacerItem1, 3, 0, 1, 1)
        spacerItem2 = QtWidgets.QSpacerItem(5, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_3.addItem(spacerItem2, 0, 1, 1, 1)
        self.Controls_Group = QtWidgets.QGroupBox(self.dockWidgetContents)
        self.Controls_Group.setToolTip("Controls")
        self.Controls_Group.setTitle("Controls")
        self.Controls_Group.setObjectName("Controls_Group")
        self.gridLayout_2 = QtWidgets.QGridLayout(self.Controls_Group)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.gridLayout_8 = QtWidgets.QGridLayout()
        self.gridLayout_8.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint)
        self.gridLayout_8.setSpacing(2)
        self.gridLayout_8.setObjectName("gridLayout_8")
        spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_8.addItem(spacerItem3, 0, 3, 1, 1)
        self.DimensionP2 = QtWidgets.QPushButton(self.Controls_Group)
        self.DimensionP2.setEnabled(False)
        self.DimensionP2.setMinimumSize(QtCore.QSize(32, 48))
        self.DimensionP2.setMaximumSize(QtCore.QSize(48, 48))
        self.DimensionP2.setToolTip("Second Element")
        self.DimensionP2.setText("")
        icon5 = QtGui.QIcon()
        icon5.addPixmap(QtGui.QPixmap("C:\\Users\\userC\\Documents\\GitHub\\Manipulator\\Resources\\ui\\../Documents/GitHub/Manipulator-f3nix/Resources/ui/DimensionP2.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.DimensionP2.setIcon(icon5)
        self.DimensionP2.setIconSize(QtCore.QSize(32, 32))
        self.DimensionP2.setCheckable(False)
        self.DimensionP2.setChecked(False)
        self.DimensionP2.setObjectName("DimensionP2")
        self.gridLayout_8.addWidget(self.DimensionP2, 1, 1, 1, 1)
        self.bLabel = QtWidgets.QPushButton(self.Controls_Group)
        self.bLabel.setEnabled(False)
        self.bLabel.setMinimumSize(QtCore.QSize(32, 32))
        self.bLabel.setMaximumSize(QtCore.QSize(32, 32))
        self.bLabel.setToolTip("<html><head/><body><p>Enable extra Label</p><p>for dimensioning</p></body></html>")
        self.bLabel.setText("")
        icon6 = QtGui.QIcon()
        icon6.addPixmap(QtGui.QPixmap("C:\\Users\\userC\\Documents\\GitHub\\Manipulator\\Resources\\ui\\../Documents/GitHub/Manipulator-f3nix/Resources/ui/label-d-2.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.bLabel.setIcon(icon6)
        self.bLabel.setIconSize(QtCore.QSize(20, 20))
        self.bLabel.setCheckable(False)
        self.bLabel.setChecked(False)
        self.bLabel.setObjectName("bLabel")
        self.gridLayout_8.addWidget(self.bLabel, 0, 2, 1, 1)
        self.APlane = QtWidgets.QPushButton(self.Controls_Group)
        self.APlane.setEnabled(False)
        self.APlane.setMinimumSize(QtCore.QSize(32, 48))
        self.APlane.setMaximumSize(QtCore.QSize(48, 48))
        self.APlane.setToolTip("Annotation Plane")
        self.APlane.setText("")
        icon7 = QtGui.QIcon()
        icon7.addPixmap(QtGui.QPixmap("C:\\Users\\userC\\Documents\\GitHub\\Manipulator\\Resources\\ui\\../Documents/GitHub/Manipulator-f3nix/Resources/ui/AnnPlane.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.APlane.setIcon(icon7)
        self.APlane.setIconSize(QtCore.QSize(32, 32))
        self.APlane.setCheckable(False)
        self.APlane.setChecked(False)
        self.APlane.setObjectName("APlane")
        self.gridLayout_8.addWidget(self.APlane, 1, 2, 1, 1)
        self.Measure = QtWidgets.QPushButton(self.Controls_Group)
        self.Measure.setMinimumSize(QtCore.QSize(32, 48))
        self.Measure.setMaximumSize(QtCore.QSize(48, 48))
        self.Measure.setToolTip("Measure Button\n"
"Click Measure to start measuring")
        self.Measure.setText("")
        self.Measure.setIcon(icon)
        self.Measure.setIconSize(QtCore.QSize(32, 32))
        self.Measure.setCheckable(True)
        self.Measure.setChecked(False)
        self.Measure.setObjectName("Measure")
        self.gridLayout_8.addWidget(self.Measure, 0, 0, 1, 1)
        self.DimensionP3 = QtWidgets.QPushButton(self.Controls_Group)
        self.DimensionP3.setEnabled(False)
        self.DimensionP3.setMinimumSize(QtCore.QSize(32, 48))
        self.DimensionP3.setMaximumSize(QtCore.QSize(48, 48))
        self.DimensionP3.setToolTip("Dimension position")
        self.DimensionP3.setText("")
        icon8 = QtGui.QIcon()
        icon8.addPixmap(QtGui.QPixmap("C:\\Users\\userC\\Documents\\GitHub\\Manipulator\\Resources\\ui\\../Documents/GitHub/Manipulator-f3nix/Resources/ui/DimensionP3.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.DimensionP3.setIcon(icon8)
        self.DimensionP3.setIconSize(QtCore.QSize(32, 32))
        self.DimensionP3.setCheckable(False)
        self.DimensionP3.setChecked(False)
        self.DimensionP3.setObjectName("DimensionP3")
        self.gridLayout_8.addWidget(self.DimensionP3, 1, 3, 1, 1)
        self.DimensionP1 = QtWidgets.QPushButton(self.Controls_Group)
        self.DimensionP1.setEnabled(False)
        self.DimensionP1.setMinimumSize(QtCore.QSize(32, 48))
        self.DimensionP1.setMaximumSize(QtCore.QSize(48, 48))
        self.DimensionP1.setToolTip("First Element")
        self.DimensionP1.setText("")
        icon9 = QtGui.QIcon()
        icon9.addPixmap(QtGui.QPixmap("C:\\Users\\userC\\Documents\\GitHub\\Manipulator\\Resources\\ui\\../Documents/GitHub/Manipulator-f3nix/Resources/ui/DimensionP1.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.DimensionP1.setIcon(icon9)
        self.DimensionP1.setIconSize(QtCore.QSize(32, 32))
        self.DimensionP1.setCheckable(False)
        self.DimensionP1.setChecked(False)
        self.DimensionP1.setObjectName("DimensionP1")
        self.gridLayout_8.addWidget(self.DimensionP1, 1, 0, 1, 1)
        self.CleanDist = QtWidgets.QPushButton(self.Controls_Group)
        self.CleanDist.setMinimumSize(QtCore.QSize(32, 48))
        self.CleanDist.setMaximumSize(QtCore.QSize(48, 48))
        self.CleanDist.setToolTip("Clean Measures")
        self.CleanDist.setText("")
        icon10 = QtGui.QIcon()
        icon10.addPixmap(QtGui.QPixmap("C:\\Users\\userC\\Documents\\GitHub\\Manipulator\\Resources\\ui\\../Documents/GitHub/Manipulator-f3nix/Resources/ui/Clean.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.CleanDist.setIcon(icon10)
        self.CleanDist.setIconSize(QtCore.QSize(32, 32))
        self.CleanDist.setCheckable(True)
        self.CleanDist.setChecked(False)
        self.CleanDist.setObjectName("CleanDist")
        self.gridLayout_8.addWidget(self.CleanDist, 0, 1, 1, 1)
        spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_8.addItem(spacerItem4, 1, 4, 1, 1)
        self.gridLayout_2.addLayout(self.gridLayout_8, 0, 0, 1, 7)
        self.rbRadius = QtWidgets.QRadioButton(self.Controls_Group)
        self.rbRadius.setMinimumSize(QtCore.QSize(64, 32))
        self.rbRadius.setToolTip("Get Radius of Arc or Circle")
        self.rbRadius.setText("")
        icon11 = QtGui.QIcon()
        icon11.addPixmap(QtGui.QPixmap("C:\\Users\\userC\\Documents\\GitHub\\Manipulator\\Resources\\ui\\../Documents/GitHub/Manipulator-f3nix/Resources/ui/Radius.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.rbRadius.setIcon(icon11)
        self.rbRadius.setIconSize(QtCore.QSize(28, 28))
        self.rbRadius.setChecked(False)
        self.rbRadius.setObjectName("rbRadius")
        self.gridLayout_2.addWidget(self.rbRadius, 3, 0, 1, 1)
        self.rbSnap = QtWidgets.QRadioButton(self.Controls_Group)
        self.rbSnap.setMinimumSize(QtCore.QSize(72, 32))
        self.rbSnap.setToolTip("Snap to EndPoint, MiddlePoint, Center")
        self.rbSnap.setText("")
        icon12 = QtGui.QIcon()
        icon12.addPixmap(QtGui.QPixmap("C:\\Users\\userC\\Documents\\GitHub\\Manipulator\\Resources\\ui\\../Documents/GitHub/Manipulator-f3nix/Resources/ui/Snap_Opt.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.rbSnap.setIcon(icon12)
        self.rbSnap.setIconSize(QtCore.QSize(78, 26))
        self.rbSnap.setChecked(True)
        self.rbSnap.setObjectName("rbSnap")
        self.gridLayout_2.addWidget(self.rbSnap, 1, 0, 1, 2)
        self.rbMass = QtWidgets.QRadioButton(self.Controls_Group)
        self.rbMass.setMinimumSize(QtCore.QSize(56, 32))
        self.rbMass.setToolTip("Center of Mass")
        self.rbMass.setText("")
        icon13 = QtGui.QIcon()
        icon13.addPixmap(QtGui.QPixmap("C:\\Users\\userC\\Documents\\GitHub\\Manipulator\\Resources\\ui\\../Documents/GitHub/Manipulator-f3nix/Resources/ui/CenterOfMass.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.rbMass.setIcon(icon13)
        self.rbMass.setIconSize(QtCore.QSize(28, 28))
        self.rbMass.setChecked(False)
        self.rbMass.setObjectName("rbMass")
        self.gridLayout_2.addWidget(self.rbMass, 2, 1, 1, 1)
        self.rbLength = QtWidgets.QRadioButton(self.Controls_Group)
        self.rbLength.setMinimumSize(QtCore.QSize(64, 32))
        self.rbLength.setToolTip("Get Length of Edge")
        self.rbLength.setText("")
        icon14 = QtGui.QIcon()
        icon14.addPixmap(QtGui.QPixmap("C:\\Users\\userC\\Documents\\GitHub\\Manipulator\\Resources\\ui\\../Documents/GitHub/Manipulator-f3nix/Resources/ui/Length.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.rbLength.setIcon(icon14)
        self.rbLength.setIconSize(QtCore.QSize(32, 32))
        self.rbLength.setChecked(False)
        self.rbLength.setObjectName("rbLength")
        self.gridLayout_2.addWidget(self.rbLength, 3, 1, 1, 2)
        self.rbAngle = QtWidgets.QRadioButton(self.Controls_Group)
        self.rbAngle.setMinimumSize(QtCore.QSize(64, 32))
        self.rbAngle.setToolTip("Get Angle")
        self.rbAngle.setText("")
        icon15 = QtGui.QIcon()
        icon15.addPixmap(QtGui.QPixmap("C:\\Users\\userC\\Documents\\GitHub\\Manipulator\\Resources\\ui\\../Documents/GitHub/Manipulator-f3nix/Resources/ui/Angle.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.rbAngle.setIcon(icon15)
        self.rbAngle.setIconSize(QtCore.QSize(32, 32))
        self.rbAngle.setChecked(False)
        self.rbAngle.setObjectName("rbAngle")
        self.gridLayout_2.addWidget(self.rbAngle, 3, 3, 1, 2)
        self.rbBbox = QtWidgets.QRadioButton(self.Controls_Group)
        self.rbBbox.setMinimumSize(QtCore.QSize(56, 32))
        self.rbBbox.setToolTip("Center of BoundingBox")
        self.rbBbox.setText("")
        icon16 = QtGui.QIcon()
        icon16.addPixmap(QtGui.QPixmap("C:\\Users\\userC\\Documents\\GitHub\\Manipulator\\Resources\\ui\\../Documents/GitHub/Manipulator-f3nix/Resources/ui/CenterBBox.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.rbBbox.setIcon(icon16)
        self.rbBbox.setIconSize(QtCore.QSize(28, 28))
        self.rbBbox.setChecked(False)
        self.rbBbox.setObjectName("rbBbox")
        self.gridLayout_2.addWidget(self.rbBbox, 2, 0, 1, 1)
        self.cbAPlane = QtWidgets.QCheckBox(self.Controls_Group)
        self.cbAPlane.setMinimumSize(QtCore.QSize(32, 0))
        self.cbAPlane.setToolTip("use Annotation Plane\n"
"for Dimension")
        self.cbAPlane.setText("")
        self.cbAPlane.setIcon(icon7)
        self.cbAPlane.setIconSize(QtCore.QSize(32, 32))
        self.cbAPlane.setObjectName("cbAPlane")
        self.gridLayout_2.addWidget(self.cbAPlane, 1, 4, 1, 1)
        spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_2.addItem(spacerItem5, 1, 6, 1, 1)
        spacerItem6 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_2.addItem(spacerItem6, 2, 6, 1, 1)
        spacerItem7 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_2.addItem(spacerItem7, 3, 6, 1, 1)
        self.gridLayout_3.addWidget(self.Controls_Group, 2, 0, 1, 1)
        DockWidget.setWidget(self.dockWidgetContents)

###############################################################################################################
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(closeW_b64))
        self.close.setIconSize(QtCore.QSize(btn_sm_sizeX,btn_sm_sizeY))
        self.close.setIcon(QtGui.QIcon(pm))
        self.close.clicked.connect(close_caliper)
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(minimize_b64))
        self.dock_minimize.setIconSize(QtCore.QSize(btn_sm_sizeX,btn_sm_sizeY))
        self.dock_minimize.setIcon(QtGui.QIcon(pm))
        self.dock_minimize.clicked.connect(Cp_minimz)
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(un_dock_b64))
        self.dock_float.setIconSize(QtCore.QSize(btn_sm_sizeX,btn_sm_sizeY))
        self.dock_float.setIcon(QtGui.QIcon(pm))
        self.dock_float.clicked.connect(Cp_undock)
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(Caliper_b64))
        self.Measure.setIconSize(QtCore.QSize(btn_sizeX,btn_sizeY))
        self.Measure.setIcon(QtGui.QIcon(pm))
        self.Measure.toggled.connect(self.onMeasure_toggled)
        # # http://www.qtcentre.org/threads/61391-QPushButton-State-(in-PyQt)
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(DimensionP1_b64))
        self.DimensionP1.setIconSize(QtCore.QSize(btn_sizeX,btn_sizeY))
        self.DimensionP1.setIcon(QtGui.QIcon(pm))
        #self.DimensionP1.setEnabled(True)
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(DimensionP2_b64))
        self.DimensionP2.setIconSize(QtCore.QSize(btn_sizeX,btn_sizeY))
        self.DimensionP2.setIcon(QtGui.QIcon(pm))
        #self.DimensionP2.setEnabled(True)
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(DimensionP3_b64))
        self.DimensionP3.setIconSize(QtCore.QSize(btn_sizeX,btn_sizeY))
        self.DimensionP3.setIcon(QtGui.QIcon(pm))
        #self.DimensionP2.setEnabled(True)
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(AnnotationPlane_b64))
        self.cbAPlane.setIconSize(QtCore.QSize(btn_sizeX,btn_sizeY))
        self.cbAPlane.setIcon(QtGui.QIcon(pm))
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(AnnotationPlane_b64))
        self.APlane.setIconSize(QtCore.QSize(btn_sizeX,btn_sizeY))
        self.APlane.setIcon(QtGui.QIcon(pm))
        #self.DimensionP2.setEnabled(True)
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(help_b64))
        self.Help_Caliper.setIconSize(QtCore.QSize(btn_md_sizeX,btn_md_sizeY))
        self.Help_Caliper.setIcon(QtGui.QIcon(pm))
        self.Help_Caliper.clicked.connect(self.onHelp)
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(Measure_Delete_b64))
        self.CleanDist.setIconSize(QtCore.QSize(btn_md_sizeX,btn_md_sizeY))
        self.CleanDist.setIcon(QtGui.QIcon(pm))
        self.CleanDist.clicked.connect(self.onClean)
        self.CleanDist.setEnabled(False)
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(Center_Bbox_b64))
        self.rbBbox.setIconSize(QtCore.QSize(btn_md_sizeX,btn_md_sizeY))
        self.rbBbox.setIcon(QtGui.QIcon(pm))
        # self.CleanDist.clicked.connect(self.onClean)
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(Center_Mass_b64))
        self.rbMass.setIconSize(QtCore.QSize(btn_md_sizeX,btn_md_sizeY))
        self.rbMass.setIcon(QtGui.QIcon(pm))
        # self.CleanDist.clicked.connect(self.onClean)
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(Snap_Options_b64))
        self.rbSnap.setIconSize(QtCore.QSize(3*btn_md_sizeX,btn_md_sizeY))
        self.rbSnap.setIcon(QtGui.QIcon(pm))
        #self.rbSnap.clicked.connect(self.onSnap)
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(Dim_Radius_b64))
        self.rbRadius.setIconSize(QtCore.QSize(btn_md_sizeX,btn_md_sizeY))
        self.rbRadius.setIcon(QtGui.QIcon(pm))
        self.rbRadius.setEnabled(True)
        #self.rbRadius.clicked.connect(self.onRuler)
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(Dim_Length_b64))
        self.rbLength.setIconSize(QtCore.QSize(btn_md_sizeX,btn_md_sizeY))
        self.rbLength.setIcon(QtGui.QIcon(pm))
        #self.rbLength.setEnabled(False)
        #self.rbLength.clicked.connect(self.onRuler)
        # self.CleanDist.clicked.connect(self.onClean)
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(Dim_Angle_b64))
        self.rbAngle.setIconSize(QtCore.QSize(btn_md_sizeX,btn_md_sizeY))
        self.rbAngle.setIcon(QtGui.QIcon(pm))
        self.rbAngle.setEnabled(True)
        # self.CleanDist.clicked.connect(self.onClean)
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(Dim_Parallel_b64))
        if 0:
            self.rbParallel.setIconSize(QtCore.QSize(btn_md_sizeX,btn_md_sizeY))
            self.rbParallel.setIcon(QtGui.QIcon(pm))
            self.rbParallel.setEnabled(False)
        # self.CleanDist.clicked.connect(self.onClean)
        pm = QtGui.QPixmap()
        pm.loadFromData(base64.b64decode(label_selected_b64))
        self.bLabel.setIconSize(QtCore.QSize(btn_sm_sizeX,btn_sm_sizeY))
        self.bLabel.setIcon(QtGui.QIcon(pm))
        self.bLabel.setEnabled(True)
        self.bLabel.toggled.connect(self.onLabel_toggled)
        self.bLabel.setCheckable(True)
        self.bLabel.setChecked(True)
        #self.bLabel.clicked.connect(self.onLabel_clicked)
        #self.bLabel.setCheckable(True)
        #
        #self.cbAPlane.setChecked(False)
        #self.cbAPlane.setChecked(True)
        #self.rbAngle.setChecked(True)
        #self.rbRadius.setChecked(True)
        ####

###############################################################################################################
        self.retranslateUi(DockWidget)
        QtCore.QMetaObject.connectSlotsByName(DockWidget)
        DockWidget.setTabOrder(self.dock_float, self.dock_minimize)
        DockWidget.setTabOrder(self.dock_minimize, self.close)
        DockWidget.setTabOrder(self.close, self.Measure)


## retraslateUi Qt5 compatibility #############################################################################################################
    def retranslateUi(self, DockWidget):
        pass


### ------------------------------------------------------------------------------------ ###
### ---------code to be inserted and remove from new generation------------------------- ###
### ------------------------------------------------------------------------------------ ###
###############################################################################################################
# widgets connected functions
##
    def onRuler(self):
        self.rbSnap.setChecked(False)
        self.rbBbox.setChecked(False)
        sayerr('Ruler')
##
    def onSnap(self):
        self.rbRadius.setChecked(False)
        self.rbLength.setChecked(False)
        sayerr('Snap')

##
    def onClean(self):
        global added_dim
        for d in added_dim:
            try:
                FreeCAD.ActiveDocument.removeObject(d.Name)
            except:
                pass
        try:
            FreeCAD.ActiveDocument.removeObject('Measurements')
        except:
            pass
        if FreeCAD.ActiveDocument is not None:
            FreeCAD.ActiveDocument.recompute()
            for ob in FreeCAD.ActiveDocument.Objects:
                FreeCADGui.Selection.removeSelection(ob)
        added_dim=[]
##
    def onLabel_toggled(self,checked):
        #print('label toggled')
        if self.bLabel.isChecked():
            #print('label chk')
            pm = QtGui.QPixmap()
            pm.loadFromData(base64.b64decode(label_selected_b64))
            self.bLabel.setIconSize(QtCore.QSize(btn_sm_sizeX,btn_sm_sizeY))
            self.bLabel.setIcon(QtGui.QIcon(pm))
        else:
            #print('label not chk')
            pm = QtGui.QPixmap()
            pm.loadFromData(base64.b64decode(label_b64))
            self.bLabel.setIconSize(QtCore.QSize(btn_sm_sizeX,btn_sm_sizeY))
            self.bLabel.setIcon(QtGui.QIcon(pm))        
##
        
    def onMeasure_toggled(self,checked):
        global selobject, sel, APName
        global initial_placement, last_selection, objs
        global s1, DSMove_prev_Val, DSRotate_prev_Val
        global added_dim

        get_CPposition()
        #say("Move clicked")
        #Move()
        #self.MoveDial.setValue(0.0)
        #self.RotateDial.setValue(0.0)
        #self.RotateDial.setValue("{0:.2f}".format(0.0))
        #if self.Confirm_Move.isChecked:
        if self.Measure.isChecked():
            pm = QtGui.QPixmap()
            pm.loadFromData(base64.b64decode(Caliper_selected_b64))
            self.Measure.setIcon(QtGui.QIcon(pm))
        else:
            pm = QtGui.QPixmap()
            pm.loadFromData(base64.b64decode(Caliper_b64))
            self.Measure.setIcon(QtGui.QIcon(pm))
        if FreeCAD.ActiveDocument is not None:
            if checked:
                for ob in FreeCAD.ActiveDocument.Objects:
                    FreeCADGui.Selection.removeSelection(ob)
                sayerr('starting!')
                self.rowOverride = True
                self.DimensionP1.setEnabled(True)
                self.DimensionP2.setEnabled(False)
                self.DimensionP3.setEnabled(False)
                self.cbAPlane.setEnabled(False)
                self.APlane.setEnabled(False)
                self.CleanDist.setEnabled(False)
                s1=SelObserverCaliper()
                FreeCADGui.Selection.addObserver(s1) # install resident function
            else:
                sayerr('removing observer')
                self.rowOverride = False
                self.DimensionP1.setEnabled(False)
                self.DimensionP2.setEnabled(False)
                self.DimensionP3.setEnabled(False)
                self.APlane.setEnabled(False)
                self.cbAPlane.setEnabled(True)
                self.CleanDist.setEnabled(True)
                #FreeCADGui.Selection.removeObserver(s1)
                try:
                    sayw('removing observer')
                    FreeCADGui.Selection.removeObserver(s1)   # desinstalle la fonction residente SelObserver
                except:
                    sayerr('not able to remove observer')
                    pass
                if FreeCAD.ActiveDocument is not None:
                    for obj in FreeCAD.ActiveDocument.Objects:
                        FreeCADGui.Selection.removeSelection(obj)
                        if obj.Name == APName:
                            FreeCAD.ActiveDocument.removeObject(APName)
                    for ad in added_dim:
                        if FreeCAD.ActiveDocument.getObject('Measurements') is None:
                            FreeCAD.ActiveDocument.addObject('App::DocumentObjectGroup','Measurements')
                            FreeCAD.ActiveDocument.ActiveObject.Label = 'Measurements'
                        try:
                            FreeCAD.ActiveDocument.getObject('Measurements').addObject(FreeCAD.ActiveDocument.getObject(ad.Name))
                        except:
                            pass

##
    def onHelp(self):
        msg="""<b>Caliper Tools</b><br>
        <b>Click on Measure button</b> to start the Measurement.<br>
        Select the type of Snapping you need<br>
        and then Click on a Face, an Edge or a Vertex<br>
        to identify your measurement points.<br>
        <b>Check Annotation Plane</b> to use an Annotation Plane to place a Dimension.
        <br><b>Caliper Tools</b> work with <b>Part, App::Part</b> and <b>Body</b> objects<br>
        <font color = blue><b>Version:
        """+__version__+"""</b></font>"""
        QtGui.QApplication.restoreOverrideCursor()
        res=''
        QtGui.QApplication.restoreOverrideCursor()
        res = QtGui.QMessageBox.question(None,"Help",msg,QtGui.QMessageBox.Ok)
##

###############################################################################################################
def Cp_centerOnScreen (widg):
    '''centerOnScreen()
    Centers the window on the screen.'''
    # sayw(widg.width());sayw(widg.height())
    # sayw(widg.pos().x());sayw(widg.pos().y())
    resolution = QtGui.QDesktopWidget().screenGeometry()
    xp=(resolution.width() / 2) - sizeX/2 # - (KSUWidget.frameSize().width() / 2)
    yp=(resolution.height() / 2) - sizeY/2 # - (KSUWidget.frameSize().height() / 2))
    # xp=widg.pos().x()-sizeXMax/2;yp=widg.pos().y()#+sizeY/2
    widg.setGeometry(xp+wdszX+10, yp, sizeX, sizeY)
##

global CPDockWidget

global clp_instance_nbr
clp_instance_nbr=0

def Cp_singleInstance():
    app = QtGui.QApplication #QtGui.qApp
    for i in app.topLevelWidgets():
        #say (str(i.objectName()))
        if i.objectName() == "Caliper":
            say (str(i.objectName()))
            #i.close()
            #i.deleteLater()
            say ('closed')
            return False
    t=FreeCADGui.getMainWindow()
    dw=t.findChildren(QtGui.QDockWidget)
    #say( str(dw) )
    for i in dw:
        #say (str(i.objectName()))
        if str(i.objectName()) == "Caliper":
            say (str(i.objectName())+' docked')
            set_CPposition()
            #i.deleteLater()
            return False
    return True
##

##############################################################
def dock_right_CP(): ##ok
    global clp_instance_nbr
    
    CPmw = FreeCADGui.getMainWindow()
    t=FreeCADGui.getMainWindow()
    dw=t.findChildren(QtGui.QDockWidget)
    looping=False
    ldw=len (dw)
    if ldw>0:
        looping=True
    idw=0
    cv=None
    while looping and idw < ldw:
    #for d in dw:
        d=dw[idw]
        idw+=1
        area = t.dockWidgetArea(d)
        #if area == QtCore.Qt.LeftDockWidgetArea:
        #    print (d.windowTitle(), '(Left)')
        if area == QtCore.Qt.RightDockWidgetArea:
            print (d.windowTitle(), '(Right)')
            r_w=str(d.objectName()) #;print(r_w)
            cv = t.findChild(QtGui.QDockWidget, r_w)
            looping=False
    if CPDockWidget and cv is not None:
        dw=t.findChildren(QtGui.QDockWidget)
        #t.tabifyDockWidget(cv,RHDockWidget)
        try:
            t.tabifyDockWidget(cv,CPDockWidget)
            say( "Tabified done !")               
            #stop
        except:
            say('exception raised')
            pass
    else:
        CPmw.addDockWidget(QtCore.Qt.RightDockWidgetArea,CPDockWidget)
        CPDockWidget.setFloating(False)  #dock
        #stop
    #RHDockWidget.resize(sizeXright,sizeYright)
    CPDockWidget.activateWindow()
    CPDockWidget.raise_()
    if clp_instance_nbr==0:
        clp_instance_nbr=1
        dock_right_CP()
##

def dock_left_CP():
    CPmw = FreeCADGui.getMainWindow()

    CPmw.addDockWidget(QtCore.Qt.LeftDockWidgetArea,CPDockWidget)
    CPDockWidget.setFloating(False)  #dock
    CPDockWidget.activateWindow()
    CPDockWidget.raise_()
    t=FreeCADGui.getMainWindow()
    cv = t.findChild(QtGui.QDockWidget, "Combo View")
    if cv is None:
        cv = t.findChild(QtGui.QDockWidget, "ComboView")
        if cv is None:
            cv = t.findChild(QtGui.QDockWidget, "Model")
            if cv is None:
                cv = t.findChild(QtGui.QDockWidget, "Tree view")
    if CPDockWidget and cv:
        dw=t.findChildren(QtGui.QDockWidget)
        try:
            t.tabifyDockWidget(cv,CPDockWidget)
            say( "Tabified done !")              
        except:
            say('exception raised')
            pass
##
doc=FreeCAD.ActiveDocument


if Cp_singleInstance():

    CPDockWidget = QtGui.QDockWidget()          # create a new dckwidget
    CPDockWidget.ui = Ui_DockWidget()   #Ui_AlignDockWidget()           # myWidget_Ui()             # load the Ui script
    CPDockWidget.ui.setupUi(CPDockWidget) # setup the ui
    #ui = Ui_AlignDockWidget()
    #ui.setupUi(AlignDockWidget)
    #AlignDockWidget.show()

    qtM,qtm = getQtversion() 
    if qtM == '5' and qtm == '6':  #workaround for hdpi on Qt 5.6 bugged release
        rBtn_Size = '16px'
        rBtn_Style="QRadioButton::indicator {  width: "+rBtn_Size+";  height: "+rBtn_Size+"; }"
        CPDockWidget.ui.rbBbox.setStyleSheet(rBtn_Style)
        CPDockWidget.ui.rbMass.setStyleSheet(rBtn_Style)
        CPDockWidget.ui.rbAngle.setStyleSheet(rBtn_Style)
        CPDockWidget.ui.rbRadius.setStyleSheet(rBtn_Style)
        CPDockWidget.ui.rbSnap.setStyleSheet(rBtn_Style)
        CPDockWidget.ui.rbLength.setStyleSheet(rBtn_Style)
        cBtn_Style="QCheckBox::indicator {  width: "+rBtn_Size+";  height: "+rBtn_Size+"; }"
        CPDockWidget.ui.cbAPlane.setStyleSheet(cBtn_Style)

    
    CPDockWidget.setObjectName("Caliper")

    CPDockWidget.setFloating(True)  #undock
    CPDockWidget.resize(sizeX,sizeY)
    CPDockWidget.activateWindow()
    CPDockWidget.raise_()

    #MVDockWidget.show()

    CPDockWidget.setFeatures( QtGui.QDockWidget.DockWidgetMovable | QtGui.QDockWidget.DockWidgetFloatable) #|QtGui.QDockWidget.DockWidgetClosable )

    paramGet = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/MainWindow")
    if len(paramGet.GetString("StyleSheet"))>0: #we are using a StyleSheet
        CPDockWidget.setStyleSheet('QPushButton {border-radius: 0px; padding: 1px 2px;}')

    CPmw = FreeCADGui.getMainWindow()                 # PySide # the active qt window, = the freecad window since we are inside it
    CPmw.addDockWidget(QtCore.Qt.RightDockWidgetArea,CPDockWidget)
    #MVDockWidget.show()
    set_CPposition()
    #Cp_undock()
    #Cp_centerOnScreen(CPDockWidget)
    # use_hierarchy=CPDockWidget.ui.cbHierarchy.isChecked()


### ------------------------------------------------------------------------------------ ###

##################################################################################################
    #def removeSelection(self,document, object, element): # Delete the selected object
    #    FreeCAD.Console.PrintMessage("removeSelection"+"\n")

###################################################################################################
